Um filtro simples deve fazer o truque. Para construir a resposta anterior com um exemplo apropriado - inclua explicitamente o pai (s), além de todas as (**) subpastas e arquivos. Em seguida, exclua todo o resto. Aqui está filter.txt
:
+ /include_this_dir/
+ /include_this_dir/**
+ /include_that_dir/
+ /include_that_dir/**
- /**
Com a linha de comando:
rsync -av --dry-run --filter="merge filter.txt" source_dir/ dest_dir/
resultaria em:
sending incremental file list
created directory dest_dir
./
include_that_dir/
include_that_dir/somefile.txt
include_that_dir/subdir/
include_this_dir/
sent 202 bytes received 65 bytes 534.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)