Tengo un archivo que se parece a este:
/cygdrive/d/path/to/my/file1.png
/cygdrive/d/path/to/my/file2.png
/cygdrive/d/path/to/my/file3.png
/cygdrive/d/path/to/my/file4.png
Estoy llamando a rsync con:
rsync --files-from="/cygdrive/d/myfiles.txt" "/cygdrive/d/path/to/" "user@remotehost:/cygdrive/c/new/path/for"
Quiero que rsync haga una estructura de directorio como:
c:\new\path\for\my\file1.png
...
Pero falla con errores como:
rsync: change_dir "/cygdrive/c/new/path/for/cygdrive/d/path/to/my" falló: no existe tal archivo o directorio rsync: mkstmp "/cygdrive/c/new/path/for/cygdrive/d /ruta/a/mi/archivo1.png.asdjfhsdj" falló: no existe tal archivo o directorio
¿Cómo hago para que rsync comprenda que /cygdrive/d/path/to/
la parte de la ruta de origen es la "raíz" y que solo las subcarpetas/archivos deben replicarse en la raíz de destino para proporcionar una nueva ruta en el destino?
Respuesta1
Parece que el bit especificado en la línea de comando es la parte "raíz de origen" y la línea del archivo es la parte "relativa".
Por lo tanto, necesitaba eliminar /cygdrive/d/path/to/
todas las líneas del archivo dejando solomy/file1.png
Luego, cuando se le llamó con la línea de comando de la pregunta, rsync reunió la ruta del archivo local usando cmd_line_source + file_line
y la copió encmd_line_dest + file_line