Pregunta:
Estoy tratando de rsync de un servidor a otro. Los servidores tienen la misma estructura de directorios, pero tengo problemas para que el servidor de controles remotos reconozca correctamente el nombre de la ruta en el control remoto cuando hay un espacio en él.
Aquí están los detalles
El directorio local es
mnt/xlses/split/v2/name with space
El directorio remoto es
mnt/xlses/split/v2/name with space
He intentado todo lo que pude encontrar, el último intento fue
rsync --size-only -avzPe ssh /mnt/xlses/split/v2/name\ with\ space/ root@myserver.com:/mnt/xlses/split/v2/"name with space"
cuando se ejecuta, lo primero que informa es que está creando un nuevo directorio
Lo interrumpo y veo que hay un nuevo directorio
mnt/xlses/split/v2/name
todos mis archivos están en ese directorio
Esperaba que estuvieran en
mnt/xlses/split/v2/name with space
Respuesta:
Tratar
rsync --protect-args --size-only -avzPe ssh "/mnt/xlses/split/v2/name with space/ "root@myserver.com:/mnt/xlses/split/v2/name with space"
Desde man rsync
:
-s, –proteger-argumentos
Esta opción envía todos los nombres de archivo y la mayoría de las opciones al rsync remoto sin permitir que el shell remoto los interprete. Esto significa que los espacios no se dividen en nombres y los caracteres especiales que no sean comodines no se traducen (como ~, $,;, &, etc.). Los comodines se expanden en el host remoto mediante rsync (en lugar de hacerlo el shell). […]