Es ist in rsync(1)
beschrieben Handbuchseite:
Ein nachgestellter Schrägstrich an der Quelle ändert dieses Verhalten, um zu vermeiden, dass eine zusätzliche Verzeichnisebene am Ziel erstellt wird. Sie können an /
denken auf einer Quelle bedeutet "den Inhalt dieses Verzeichnisses kopieren" im Gegensatz zu "das Verzeichnis nach Namen kopieren", aber in beiden Fällen werden die Attribute des enthaltenden Verzeichnisses in das enthaltende Verzeichnis auf dem Ziel übertragen. Mit anderen Worten, jeder der folgenden Befehle kopiert die Dateien auf die gleiche Weise, einschließlich ihrer Einstellung der Attribute von /dest/foo
:
rsync -av /src/foo /dest
rsync -av /src/foo/ /dest/foo
Was das Ziel angeht, glaube ich nicht, dass es große Konsequenzen hat. Es gibt einen Unterschied, wenn die Quelle eine Datei ist und das Ziel nicht existiert – dadurch wird eine Kopie von SRC
erstellt genannt DEST
:
rsync SRC DEST
, während dies das Verzeichnis DEST
erstellt und kopiere den SRC
Datei hinein:
rsync SRC DEST/
Ich habe es mit rsync 3.1.3 auf Arch Linux getestet, die Ergebnisse sind unten:
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
Die Methoden 3-6 sind in diesem Fall entgegen der akzeptierten Antwort die richtigen.