Je to popsáno v rsync(1)
manuálová stránka:
Koncové lomítko u zdroje změní toto chování, aby se zabránilo vytvoření další úrovně adresáře v cíli. Můžete si představit atrailing
/
na zdroji ve smyslu "zkopírujte obsah tohoto adresáře" na rozdíl od "zkopírujte adresář podle názvu", ale v obou případech jsou atributy obsahujícího adresáře přeneseny do adresáře obsahujícího v cíli. Jinými slovy, každý z následujících příkazů zkopíruje soubory stejným způsobem, včetně jejich nastavení atributů/dest/foo
:rsync -av /src/foo /dest rsync -av /src/foo/ /dest/foo
Co se týče destinace, nemyslím si, že to má nějaké zásadní důsledky. Je rozdíl, pokud je zdrojem soubor a cíl neexistuje – tím se vytvoří kopie SRC
s názvem DEST
:
rsync SRC DEST
, zatímco tím se vytvoří adresář DEST
a zkopírujte SRC
soubor do něj:
rsync SRC DEST/
Testoval jsem to s rsync 3.1.3 na Arch Linuxu, výsledky jsou níže:
1. rsync -avPzu test [email protected]:/home/login/test "test" directory is copied inside of existing "test" on remote (structure is then test/test/...)
2. rsync -avPzu test [email protected]:/home/login/test/ same as above
3. rsync -avPzu test/ [email protected]:/home/login/test content of "test" directory is synchronized with the remote "test" directory
4. rsync -avPzu test/ [email protected]:/home/login/test/ same as above
5. rsync -avPzu test [email protected]:/home/login/ same as above
6. rsync -avPzu test [email protected]:/home/login same as above
Metody 3-6 jsou v tomto případě správné, na rozdíl od přijaté odpovědi.