C'est décrit dans le rsync(1)
page de manuel :
Une barre oblique à la fin de la source modifie ce comportement pour éviter de créer un niveau de répertoire supplémentaire à la destination. Vous pouvez penser à une traînée
/
sur une source comme signifiant "copier le contenu de ce répertoire" par opposition à "copier le répertoire par son nom", mais dans les deux cas, les attributs du répertoire contenant sont transférés vers le répertoire contenant sur la destination. En d'autres termes, chacune des commandes suivantes copie les fichiers de la même manière, y compris leur définition des attributs de/dest/foo
:rsync -av /src/foo /dest rsync -av /src/foo/ /dest/foo
Quant à la destination, je ne pense pas que cela ait des conséquences majeures. Il y a une différence si la source est un fichier et que la destination n'existe pas — cela fera une copie de SRC
appelé DEST
:
rsync SRC DEST
, alors que cela créera le répertoire DEST
et copiez le SRC
fichier dedans :
rsync SRC DEST/
Je l'ai testé avec rsync 3.1.3 sur Arch Linux, les résultats sont ci-dessous :
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
Les méthodes 3 à 6 sont les bonnes dans ce cas, contrairement à la réponse acceptée.