Nie trzeba tego robić rsync, ale byłoby miło nie pisać scenariusza, aby to zrobić, i rsyncjest bardzo blisko tego, czego chcę.
rsync -a(lub -l) może zachować dowiązania symboliczne i -Lmoż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 apowinny również kopiować b, c, c/foo, d, d/ei d/e/foo).
dirA/linkjest dowiązaniem symbolicznym do../dirB/file, to powinno to być traktowane jako kopiowaniedirB/filedodest/dirB/fileidirA/linkdodest/dirA/link. Co jeślidirA/linkjest link do../../another_file? Co się dzieje, jeślidirA/linkwskazuje na katalog znajdujący się wyżej w drzewie katalogów?