Це не потрібно робити rsync
, але було б непогано не писати сценарій для цього, і rsync
це дуже близько до того, що я хочу.
rsync -a
(або -l
) може зберігати символьні посилання, а також -L
може зменшити відновлення символьних посилань і скопіювати їх так, як ніби це звичайний файл / dir. Однак чи можливо зберегти симпосилання, а також скопіювати файли / каталоги, на які вказує посилання?
Ось приклад. Скажімо, у нас є ієрархія цієї папки:
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
вказує на каталог, який знаходиться вище в дереві каталогів?