Nous utilisons des liens symboliques pour créer des arborescences "virtuelles" de dossiers / fichiers en utilisant du contenu provenant de tout le disque. En gros, nous avons un désordre et un script crée une arborescence de fichiers organisée en créant des liens symboliques vers ces fichiers non organisés d'origine tout en modifiant le nom des fichiers, etc. Une fois que cela est fait, nous souhaitons synchroniser cette arborescence "virtuelle" avec un serveur distant. nous utilisons rsync avec le --copy-linksparam.

Le problème que nous rencontrons est que rsync ignore complètement les modifications apportées aux noms des liens symboliques. Donc par exemple:

mkdir export # make a dir for export
ln -s /file.jpg export/fileLink.jpg # create a link to file.jpg
rsync --copy-links -avzhs --delete export/ /tmp/rsyncExport # rsync with an export dir
ls /tmp/rsyncExport/
fileLink.jpg
# we find our file (not a symlink) with the symlink name.

Jusqu'ici tout va bien, mais si nous changeons le nom du lien et que nous re-synchronisons:

rm export/fileLink.jpg
ln -s /file.jpg export/fileLink2.jpg # create a link to file.jpg but with another name
rsync --copy-links -avzhs --delete export/ /tmp/rsyncExport # rsync again
ls /tmp/rsyncExport/
fileLink.jpg
# we find our file (not a symlink) with the old symlink name and not the new one.

Évidemment, rsync "suit" le lien et le fichier n'a pas changé, il ignore donc le fait que le lien est différent.

Y at-il un moyen de résoudre le comportement ci-dessus?

Merci de votre aide.

D.Mill
la source