Это не должно быть сделано rsync, но было бы неплохо написать сценарий для этого, и rsyncэто очень близко к тому, что я хочу.
rsync -a(или -l) может сохранять символические ссылки и -Lможет разыменовывать символические ссылки и копировать их, как если бы это был обычный файл / каталог. Однако возможно ли сохранить символическую ссылку, а также скопировать файлы / каталоги, на которые указывает ссылка?
Вот пример. Скажем, у нас есть эта иерархия папок:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
и когда я делаю rsync -aR dirA dest(или что-то еще), я хотел бы, чтобы именно это появилось в dest:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
Это возможно с rsync? Спасибо.
Давайте предположим, что символические ссылки, имеющие абсолютный путь или указывающие на внешний каталог, могут быть проигнорированы.
a -> b, b -> c/foo, c -> d/e: запрос на копию aдолжна также скопировать b, c, c/foo, d, d/eи d/e/foo).
dirA/linkесть символическая ссылка на../dirB/file, то это обрабатывалось как копированиеdirB/fileвdest/dirB/fileиdirA/linkвdest/dirA/link. Что делать, еслиdirA/linkссылка на../../another_file? Что происходит в общем случае, еслиdirA/linkуказывает на каталог, который находится выше в дереве каталогов?