bash - name - rsync linux exclude files
La opciĆ³n rsync--include no excluye otros archivos (4)
intentando rsync archivos de cierta extensión (* .sh), pero la siguiente secuencia de comandos bash todavía transfiere todos los archivos, ¿por qué?
from=/home/xxx rsync -zvr --include="*.sh" $from/* root@$host:/home/tmp/
Debe agregar un --excluir todo y tiene que venir después del --incluir
rsync -zvr --include="*.sh" --exclude="*" $from/* root@$host:/home/tmp/
En lo que hay que añadir, al menos en mis máquinas (FreeBSD y OS X), esto no funciona:
rsync -aP --include=*/ --include=*.txt --exclude=* * /path/to/dest
pero esto hace:
rsync -aP --include=*/ --include=*.txt --exclude=* . /path/to/dest
Sí, los caracteres comodín del directorio actual parecen anular la exclusión.
Solucioné el problema cambiando --exclude = * por --exclude = *. * , Entiendo que * excluir carpeta donde están los archivos incluidos.
--include
es para qué archivos no desea --exclude
. Como no has excluido ninguno en futuros argumentos, no hay ningún efecto. Tu puedes hacer:
from=/home/xxx
rsync -zvr --include="*.sh" --include="*/" --exclude="*" "$from" root@$host:/home/tmp/
Para copiar de forma recursiva todos los archivos .sh (la --include
extra --include
no omitir directorios que puedan contener archivos .sh)