with linux unix directory rsync

linux - with - rsync unix



Las barras y el comando rsync (3)

Se describe en la página de rsync(1) .

Una barra diagonal final en el origen cambia este comportamiento para evitar crear un nivel de directorio adicional en el destino. Puede pensar que un final / en una fuente significa "copiar el contenido de este directorio" en lugar de "copiar el directorio por nombre", pero en ambos casos los atributos del directorio que contiene se transfieren al directorio que contiene en el destino . En otras palabras, cada uno de los siguientes comandos copia los archivos de la misma manera, incluyendo su configuración de los atributos de / dest / foo:

rsync -av /src/foo /dest rsync -av /src/foo/ /dest/foo

En cuanto al destino, no creo que tenga mayores consecuencias. Hay una diferencia si la fuente es un archivo y el destino no existe: el comando

rsync SRC DEST

hará una copia del SRC llamada DEST , mientras que

rsync SRC DEST/

creará el directorio DEST y copiará el archivo SRC en él.

Estoy tratando de hacer algo similar a lo que se pregunta en esta pregunta: RSync: ¿Cómo sincronizo en ambas direcciones?

Sin embargo, lo que no puedo entender es si debo o no agregar barras al final de la ruta del archivo. Básicamente, estoy intentando crear un comando de alias que sincroniza el contenido de dos directorios que tienen el mismo nombre pero están en dos servidores diferentes. Lo que no quiero es que un directorio se copie en el otro (que, en mi opinión, es una posibilidad que depende de cómo se realicen las barras al final).

Lo que tengo actualmente es:

alias syncDirectories1 = ''rsync -tvur name@host:/Users/me/directory/ /Users/me/directory/'' alias syncDirectories2 = ''rsync -tvur /Users/me/directory/ name@host:/Users/me/directory/''

Para lo que estoy tratando de lograr, ¿debería haber barras al final de ambas rutas de archivo?

Gracias por adelantado por la ayuda.


Tuve resultados diferentes de la respuesta aceptada en Ubuntu 17.04, parece que el destino / no tiene efecto. Hice los siguientes cuatro comandos:

  • rsync -av src nslash ------------ no hay barras oblicuas ni en src ni en dest
  • rsync -av src dslash / ------------ Slash on Dest only
  • rsync -av src / sslash ------------ Slash solo en src
  • rsync -av src / sdslash / ------------ Barra en ambos src y dest

Conclusiones:

  • una vez que haya un / en el src, entonces el contenido del src solo se copiará al destino, independientemente de si el destino tiene una barra o no.
  • sin barra diagonal en el src, entonces el src y su contenido se copiarán en dest.
  • Las barras en el dest no tienen efecto.

mantenga las barras inclinadas en el origen y elimínelas del destino. Me gusta esto:

alias syncDirectories1 = ''rsync -tvur name@host:/Users/me/directory/ /Users/me/directory'' alias syncDirectories2 = ''rsync -tvur /Users/me/directory/ name@host:/Users/me/directory''