Nie trzeba tego robić rsync
, ale byłoby miło nie pisać scenariusza, aby to zrobić, i rsync
jest bardzo blisko tego, czego chcę.
rsync -a
(lub -l
) może zachować dowiązania symboliczne i -L
może wyrejestrować dowiązania symboliczne i skopiować je tak, jakby to był normalny plik / katalog. Czy można jednak zachować dowiązanie symboliczne, a także skopiować pliki / katalogi, do których prowadzą łącza?
Oto przykład. Powiedzmy, że mamy tę hierarchię folderów:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
a kiedy to zrobię rsync -aR dirA dest
(lub coś innego), chciałbym, aby dokładnie te pojawiały się w dest
:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
Czy to jest możliwe rsync
? Dziękuję Ci.
Załóżmy, że dowiązania symboliczne posiadające bezwzględną ścieżkę lub wskazujące na zewnątrz katalogu źródłowego mogą zostać zignorowane.
a -> b
, b -> c/foo
, c -> d/e
: żądanie kopia a
powinny również kopiować b
, c
, c/foo
, d
, d/e
i d/e/foo
).
dirA/link
jest dowiązaniem symbolicznym do../dirB/file
, to powinno to być traktowane jako kopiowaniedirB/file
dodest/dirB/file
idirA/link
dodest/dirA/link
. Co jeślidirA/link
jest link do../../another_file
? Co się dzieje, jeślidirA/link
wskazuje na katalog znajdujący się wyżej w drzewie katalogów?