Según esta página web, agregar '/' al final de un destino rsync produce un resultado diferente de no agregarlo.
He intentado probar esto, pero no puedo verificarlo:
$ mkdir dir{1..3}
$ touch dir1/file
$ rsync -r dir1/ dir2
$ rsync -r dir1/ dir3/
$ ls dir*
dir1:
file
dir2:
file
dir3:
file
¿Agregar un '/' al destino realmente tiene algún uso?
A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination.
:? Si es así, tenga en cuenta que su comando no es en absoluto similar al del ejemplo dado en la página del manual.rsync -r dir1/subdir1 dir2/
que se copie el contenido desubdir1
dentrodir2
, pero si lo hicierarsync -r dir1/subdir1/ dir2/
se copia todo el directorio (incluyendo contenidos)subdir1
endir2
lo que tendría./dir2/subdir1/
Respuestas:
Realmente hace una diferencia cuando el origen es un archivo y el directorio de destino no existe. Por ejemplo, tome un archivo llamado
file
como fuente:$ rsync file dest/
creará una copiafile
dentro de un directoriodest
, mientras que$ rsync file dest
hará una copia del archivofile
llamadodest
Para agregar (de los comentarios); si
dest
ya existe un directorio , sefile
creará una copiadest
en los dos casos anteriores.Ejemplo básico:
fuente
dest
ya existe, ¿no hay necesidad de la barra diagonal final?dest
existe un directorio , sefile
creará una copia en ambos casos.