Jak zachować pełną ścieżkę z rsync?

64

Podczas tworzenia kopii zapasowej za pomocą rsync, jak zachować pełną strukturę katalogów?

Na przykład zdalny serwer to saturn i chcę wykonać kopię zapasową saturn 's / home / udi / files / pictures do lokalnego katalogu o nazwie backup .

Chcę mieć (lokalnie) kopię zapasową / home / udi / files / images zamiast backup / images .

Adam Matan
źródło

Odpowiedzi:

76

Użyj opcji -Rlub --relative, aby zachować pełną ścieżkę.

Dentrasi
źródło
2

Innym popularnym przypadkiem użycia jest zachowanie wybranej części drzewa katalogów /./, np. Jeśli chcesz:

backup/files/pictures

Możesz pisać:

rsync --relative /home/udi/./files/pictures backup

Magia /./mówi od rsyncczego zacząć tworzenie katalogów.

Ciro Santilli
źródło
To zadziałało dla mnie! Czy magia ./jest konstrukcją Linuksa czy specyficzna dla rsync? Próbuję tylko uzyskać wgląd w to zachowanie.
flow2k
@ flow2k po prostu magia rsync, dla POSIX jest zbędna.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1

Z rsync Cygwin Windows i zakładając, że zdalny rsync wskazuje na katalog główny, zrobiłbym:

rsync -vtrz --delete server::rsyncid/home/udi/files/pictures /cygdrive/d/backup/home/udi/files

Spowoduje to umieszczenie zawartości katalogu zdalnych zdjęć w / backup / home / udi / files / pictures. Przypuszczalnie składnia w unixie byłaby podobna.

JR

John Rennie
źródło
Nie jest to przydatne, ponieważ przed wykonaniem polecenia rsync musimy odtworzyć całą hierarchię katalogów po stronie lokalnej.
Ludovic Kuty,