1

Мы используем символические ссылки для создания "виртуальных" деревьев папок / файлов, используя контент со всего диска. По сути, у нас беспорядок, и скрипт создаст организованное дерево файлов, создав символические ссылки на эти исходные неорганизованные файлы, добавив имена файлов и т.д. Как только это будет сделано, мы хотим синхронизировать это "виртуальное" дерево файлов с удаленным сервером, чтобы мы используем rsync с параметром --copy-links .

Проблема, с которой мы сталкиваемся, заключается в том, что rsync полностью игнорирует любые изменения в именах символических ссылок. Так, например:

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.

Пока все хорошо, но если мы изменим имя ссылки и произведем повторную синхронизацию:

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.

Очевидно, что rsync "следует" по ссылке, и файл не изменился, поэтому он просто продолжает игнорировать тот факт, что ссылка отличается.

Есть ли способ исправить поведение выше?

Спасибо за вашу помощь.

0