5 votos

¿Qué me falta cuando rsync copia solo mis archivos, pero no crea el directorio que contiene los archivos?

Mi comando en macOS es:

rsync -rav mydir/ /Volumes/usb1/

Esperaba que debido a la barra al final de mydir/, rsync crearía un directorio Volumes/usb1/mydir, y copiaría el árbol de directorios debajo de mydir en este directorio. Sin embargo, los archivos dentro de mydir fueron copiados directamente en /Volumes/usb1.

He instalado rsync 3.2.7 que no es el predeterminado para mi MacOS.

¿Qué hice mal?

10voto

David Anderson Puntos 2189

El archivo fuente no debe terminar en una /.

Explicación

Nota: Estoy usando macOS Catalina 10.15.7.

Para rsync, el comportamiento es lo contrario a lo que tu pregunta espera, como se documenta en man rsync. A continuación se muestra un extracto.

       rsync -avz foo:src/bar/ /data/tmp

Una barra diagonal al final de la fuente cambia este comportamiento para evitar crear
un nivel de directorio adicional en el destino. Puedes pensar en una
barra diagonal al final de una fuente como "copiar el contenido de este directorio"
en lugar de "copiar el directorio por nombre", pero en ambos casos los
atributos del directorio contenedor se transfieren al
directorio contenedor en el destino. En otras palabras, cada uno de los comandos
siguientes 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

El comando cp también se comporta como rsync, como se documenta en man cp. A continuación se muestra un extracto.

-R    Si el archivo_fuente designa un directorio, cp copia el directorio y
      todo el subárbol conectado en ese punto. Si el archivo_fuente
      termina en una /, se copian los contenidos del directorio en lugar de
      el directorio mismo. Esta opción también hace que los enlaces simbólicos se
      copien en lugar de ser indirectos, y para que cp cree archivos especiales
      en lugar de copiarlos como archivos normales. Los
      directorios creados tienen el mismo modo que el directorio fuente correspondiente,
      sin modificar por la máscara de usuarios del proceso.

0voto

Michael Zhou Puntos 167

La opción -a implica la opción -r y más. Simplemente puedes usar la opción -a. rsync --help produce una lista completa de opciones.

Navega hasta la carpeta principal de mydir

rsync -av ./mydir /Volumes/usb1

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X