Rsync kopiuje zawartość katalogu, ale nie sam katalog

120

Próbuję zsynchronizować dwie zawartości folderów o różnych nazwach:

rsync -av ~/foo [email protected]:/var/www/bar

Chciałbym skopiować zawartość foodo barna zdalnym hoście, ale nie foosam katalog . Próbowałem czegoś takiego foo/*, ale rsync tego nie obsługuje.

rsync zawsze tworzy

/var/www/bar/foo
Tombart
źródło
18
po prostu zostaw końcowe ukośnik powinno wystarczyć
exussum

Odpowiedzi:

190

Próbować rsync -av ~/foo/ [email protected]:/var/www/bar/

Protostome
źródło
37
To zachowanie jest dziwne w porównaniu z mvlub cp.
zeekvfu,
Wydaje się dziwne i niespójne, aby końcowy ukośnik był odpowiedni tylko dla tego konkretnego polecenia. Ciekawe, dlaczego nie został zmieniony.
Luke Davis
39
Na wypadek, gdyby ktoś też się zastanawiał, dlaczego to działa: jest to koniec /po nazwie katalogu.
Etienne Bruines
32

To proste,

rsync /var/www/ /home/var- kopiuje zawartość / var / www /, ale nie sam folder www .

rsync /var/www /home/var- kopiuje folder www wraz z całą zawartością.

„/” Robi różnicę.

Marcelo Guedes
źródło
6
To powinna być akceptowana odpowiedź, która naprawdę wyjaśnia różnicę
edi9999
29

Nie jest to związane tylko z rsync, ale jeśli szukasz przykładów użycia polecenia GNU / Linux, możesz użyć „np”, które wyświetla wyraźne przykłady. np. jest dostępny tutaj, z instrukcjami, jak go zainstalować: https://github.com/srsudar/eg

Wynik eg rsyncjest następujący

# rsync


copy the folder source_dir and its content into destination_dir

    rsync -av source_dir destination_dir


copy the contents of source_dir (trailing slash) into destination_dir

    rsync -av source_dir/ destination_dir
Olivier
źródło
0

Przejdź do katalogu, który chcesz skopiować, więc:

cd ~/foo 

Uruchom to:

rsync -avz . [email protected]:/var/www/bar
Dan612
źródło