Estoy tratando de correr rsync -a --files-from=~/.rsync_file_list ~/destination
y 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_list
solo 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 ~/destination
funciona bien. Entonces, ¿qué me estoy perdiendo de la --files-from
opción?
sed "s#~/#/home/wolf/#g" -ie ~/.rsync_file_list
Respuestas:
De acuerdo, encontré el problema.
--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:fuente
../
). Las barras inclinadas se ignorarán, por lo que las rutas absolutas no funcionan.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 quersync
"ve" es en realidad la ruta resuelta, orsync -a /home/foo/file
.Ver Bash Tilde Expansion para más información.
fuente