Estoy tratando de copiar el contenido de una serie de directorios de forma no recursiva a otro sistema remoto.
/dirA/dir1/file
/dirA/dir2/file
/dirA/dir3/file
dir1, dir2 y dir3 contienen muchos directorios que no quiero copiar. Copie en el host remoto a / dirB manteniendo la misma estructura de directorios.
Lo intenté:
rsync /dirA/*/ host:/dirB/
rsync /dirA/ host:/dirB/
Pero no hacen lo que quiero.
-f '- /*/'
para restringir solo a archivos de nivel superior. También tuve que especificar-f '- .*'
para excluir archivos de puntos, ya que estaba sincronizando un directorio de inicio.La solución anterior (por PleaseStand) no funcionó para mí por alguna razón. Sin embargo, esto funcionó:
rsync -avc --no-r ./source/* ./destination/
También hay esta alternativa:
rsync -avc --exclude "/" ./source/ ./destination/
fuente
Una de las "características" de rsync es cómo se analizan los directorios.
rsync /dirA/ host:/dirB/
yrsync /dirA host:/dirB
debería ser teóricamente equivalente.Como no quieres alentar la recursividad, debes evitar
-r
, lo-a
que además de otras cosas implica-r
.Todavía no he terminado con la investigación, pero esta es mi respuesta inicial.
fuente