Primer archivo en orden alfabético no copiado con rsync

Primer archivo en orden alfabético no copiado con rsync

Estoy usando el siguiente comando para hacer una copia completa y recursiva del contenido de un directorio en otro:

rsync -avzhe /path1/to1/dir1/* /path2/to2/dir2/

Funciona como esperaba, excepto que el primer archivo (en orden alfabético), ya sea un directorio o un archivo, no se copia. Todos los demás archivos se copian. Por qué ?

Mi sistema operativo es MacOS 10.14.6 si eso importa.

Respuesta1

La -eopción necesita un argumento, por lo que toma el primer nombre de archivo. No estoy seguro de por qué lo desea, -eya que establece el comando que se usará para conectarse al control remoto, pero no está usando un control remoto. Simplemente retire el -e.

Respuesta2

Para hacer una copia completa del directorio /path1/to1/dir1llamado /path2/to2/dir2, use

rsync -av /path2/to1/dir1/ /path2/to2/dir2

No tiene sentido utilizar compresión ( -z) para una copia local. La -eopción especifica el comando utilizado para establecer la conexión de red (razón por la cual su comando falla al copiar el primer archivo; rsynclo usa como opción-argumento para el-e opción), por lo que también debe eliminarse en este escenario.

Además, no lo use *al final de la ruta de origen, ya que normalmente no coincidiría con ningún nombre oculto. Colocando todos los nombres debajodir1 también podría expandirse a una lista demasiado larga para que el comando se ejecute.

Solo asegúrese de que la ruta de origen termine con una barra. Una barra al final de la ruta de destino no supone ninguna diferencia. Quitar la barra diagonal de la ruta de origen se copiaría dir1dentro dir2. Una barra diagonal al final de la ruta de origen hace dir2una copia dedir1 .

Aparte de eso, es posible que desee utilizarlo -Hpara asegurarse de que los enlaces físicos se establezcan correctamente en el destino y--sparse si sabe que está copiando archivos que pueden ser escasos (como imágenes de disco preasignadas).

Usar--delete para tambiénborrarentradas del destino que no forman parte de la jerarquía del archivo de origen. Utilice esto con precaución. Es posible que desee probar la ejecución con -n( --dry-run) primero.

información relacionada