Próbuję nierekurencyjnie skopiować zawartość serii katalogów do innego zdalnego systemu.
/dirA/dir1/file
/dirA/dir2/file
/dirA/dir3/file
katalog1, katalog2 i katalog3 zawierają wiele katalogów, których nie chcę kopiować. Skopiuj na zdalnym hoście do / dirB, zachowując tę samą strukturę katalogów.
Próbowałem:
rsync /dirA/*/ host:/dirB/
rsync /dirA/ host:/dirB/
Ale nie robią tego, co chcę.
-f '- /*/'
ograniczyć tylko do plików najwyższego poziomu. Musiałem także określić,-f '- .*'
aby wykluczyć pliki kropkowe, ponieważ synchronizowałem katalog domowy.Powyższe rozwiązanie (autorstwa PleaseStand) nie działało dla mnie z jakiegoś powodu. Działa to jednak:
rsync -avc --no-r ./source/* ./destination/
Istnieje również ten alternatywny:
rsync -avc --exclude "/" ./source/ ./destination/
źródło
Jedną z „cech” rsync jest sposób parsowania katalogów.
rsync /dirA/ host:/dirB/
irsync /dirA host:/dirB
teoretycznie powinny być równoważne.Ponieważ nie chcesz zachęcać do rekurencyjności, chcesz tego uniknąć
-r
,-a
co oprócz innych rzeczy implikuje-r
.Nadal nie do końca skończyłem badania, ale to moja początkowa odpowiedź.
źródło