Selon cette page Web, ajouter «/» à la fin d'une destination rsync produit un résultat différent de ne pas l'ajouter.
J'ai essayé de tester cela, mais je ne peux pas le vérifier:
$ mkdir dir{1..3}
$ touch dir1/file
$ rsync -r dir1/ dir2
$ rsync -r dir1/ dir3/
$ ls dir*
dir1:
file
dir2:
file
dir3:
file
L'ajout d'un «/» à la destination a-t-il une utilité parfois?
A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination.
? Si c'est le cas, veuillez noter que votre commande n'est pas du tout similaire à celle de l'exemple donné dans la page de manuel.rsync -r dir1/subdir1 dir2/
il copiera le contenu desubdir1
dansdir2
mais si vous l'avez fait,rsync -r dir1/subdir1/ dir2/
il copiera tout le répertoire (y compris le contenu)subdir1
dans dedir2
sorte que vous auriez./dir2/subdir1/
Réponses:
Cela fait une différence lorsque la source est un fichier et que le répertoire de destination n'existe pas. Par exemple, prenez un fichier appelé
file
comme source:$ rsync file dest/
va créer une copie de l'file
intérieur d'un répertoiredest
, tandis que$ rsync file dest
fera une copie du fichierfile
appelédest
Pour ajouter (à partir des commentaires); si un répertoire
dest
existe déjà, une copiefile
sera crééedest
dans les deux cas ci-dessus.Exemple de base:
la source
dest
existe déjà, il n'y a pas besoin de la barre oblique de fin?dest
existe, une copie defile
sera créée à l'intérieur dans les deux cas.