Это не должно быть сделано 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
указывает на каталог, который находится выше в дереве каталогов?