Zachowaj drzewo katalogów podczas kopiowania za pomocą rsync

19

Kiedy robię coś takiego:

rsync Videos/YouTube/LetsPlays foo@bar:/home/foo/

Wynikowa struktura katalogów wygląda następująco:

/home/foo/LetsPlays

Przeczytałem strony podręcznika, ale nie mogłem utrzymać struktury katalogów, dążąc do

/home/foo/Videos/YouTube/LetsPlays

w wyniku. Jakieś pomysły?

Jak zawsze dzięki, Markus

Markus
źródło
powiązane: serverfault.com/questions/39522/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Odpowiedzi:

29

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

Jeśli nie chcesz pełnej ścieżki do pliku zdalnego, ale tylko jej część, rsync oferuje tę funkcję od wersji 2.6.7 (jest to wersja po stronie wysyłającej, która w twoim przypadku jest stroną lokalną).

Po prostu wstaw kropkę /./do ścieżki, w której chcesz ją przerwać

Dawny:

rsync --relative Videos/./YouTube/LetsPlays foo@bar:/home/foo/

spowodowałoby powstanie tej zdalnej ścieżki:

/home/foo/YouTube/LetsPlays
Jan
źródło
Świetna odpowiedź, dziękuję.
Stephen