rsync no usa la opción --files-from?


13

Estoy tratando de correr rsync -a --files-from=~/.rsync_file_list ~/destinationy me dice: rsync error: syntax or usage error (code 1) at options.c(1652) [client=3.0.7]. ¿Alguien puede aclararme lo que estoy haciendo mal?

El archivo ~/.rsync_file_listsolo contiene una lista de nombres de archivo precedidos ~/, separados por nuevas líneas (aunque también he intentado enumerarlos todos en la misma línea, con el mismo resultado).

Si corro rsync -a ~/file ~/file2 ~/file3 ~/destinationfunciona bien. Entonces, ¿qué me estoy perdiendo de la --files-fromopción?


probarsed "s#~/#/home/wolf/#g" -ie ~/.rsync_file_list
Andy

@Andy: Por desgracia, el mismo resultado.
Wolf

Respuestas:


20

De acuerdo, encontré el problema.

  1. El archivo que contiene los nombres de archivo debe contener solo nombres de archivo; sin caminos, relativos o de otro tipo;
  2. Después de especificar --files-from=FILE, rsync requiere un directorio de origen en el que encontrar los archivos enumerados.

Entonces el comando debería ser rsync -a --files-from=~/.rsync_file_list $HOME/ /destination.

.rsync_file_list tiene que leer:

file 1
file 2
file 3

3
Corrección: los nombres de archivo en el archivo dado SON relativos al directorio de origen, pero no pueden estar por encima (no ../). Las barras inclinadas se ignorarán, por lo que las rutas absolutas no funcionan.
Wolf

Creo que puede editar su propia respuesta y agregar esta muy buena adición e información relevante que descubrió más adelante en la respuesta misma.
Vinícius M

0

El uso de "~" puede no funcionar dentro de un archivo "desde" a menos que rsync sea lo suficientemente inteligente como para reconocer y traducir el símbolo "~".

Cuando especifica un "~" como parte de un comando en la línea de comando de su shell, es el mismo shell el que convierte "~" en su directorio de inicio antes de pasar el argumento al programa. Entonces, aunque escriba rsync -a ~/file, lo que rsync"ve" es en realidad la ruta resuelta, o rsync -a /home/foo/file.

Ver Bash Tilde Expansion para más información.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.