Excluya carpetas ocultas usando rsync, pero incluya carpetas ocultas específicas e incluya todos los archivos ocultos

Excluya carpetas ocultas usando rsync, pero incluya carpetas ocultas específicas e incluya todos los archivos ocultos

Hay muchas publicaciones sobre rsyncexcluir como particular, lo sé, y he pasado algún tiempo buscando una solución, pero pensé que sería más conveniente ceder al poder mental de la comunidad, que estoy seguro puede orientarme en el camino correcto. Seguimiento en segundos.

Estoy copiando los directorios de inicio de muchos usuarios diferentes, pero por razones que no son relevantes en este momento, básicamente necesito eliminar muchas configuraciones diferentes y, como cada usuario difiere mucho, quiero escribir una rsynclínea que pueda ejecutarse en cualquier carpeta de inicio para un usuario que excluye todas las carpetas ocultas (excepto.sshy.mozillasi corresponde) pero aún captura archivos ocultos en la carpeta de inicio, como.bash_history,.perfiletc.

Incluyendo el.sshy otras carpetas especificadas es importante en este momento ya que otras carpetas comunes podrían/deberían agregarse a esa lista en una fecha posterior. Pero por ahora, básicamente necesito excluir todas las carpetas ocultas a menos que se especifique lo contrario.

Esto es lo que pensé que funcionaría, pero lamentablemente no funciona:

$ rsync -vahP --delete-before --include="*" --include={".ssh/",".mozilla/"} exclude=".*/" ./ /mount/anotherdisk/username/

¿Qué estoy haciendo mal?

Respuesta1

Me funciona si elimino la opción --include="*"y agrego los guiones olvidados a la --excludeopción como:

rsync -vahP --delete-before --include={'.ssh/','.mozilla/'} --exclude='.*/' /home/username/ /mount/anotherdisk/username

información relacionada