Це не потрібно робити 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вказує на каталог, який знаходиться вище в дереві каталогів?