Você pode passar vários argumentos de origem.
rsync -a /etc/fstab /home/user/download bkp
Isso cria bkp/fstab
e bkp/download
, como os comandos separados que você deu. Pode ser desejável preservar a estrutura de origem. Para fazer isso, use /
como a fonte e use include -exclua as regras para especificar quais arquivos copiar. Existem duas maneiras de fazer isso:
-
Inclua explicitamente cada arquivo, bem como cada componente de diretório que o leva, com
/***
no final dos diretórios quando quiser copiar toda a árvore de diretórios:rsync -a \ --include=/etc --include=/etc/fstab \ --include=/home --include=/home/user --include='/home/user/download/***' \ --exclude='*' / bkp
-
Inclua todos os diretórios de nível superior com
/*/
(para que o rsync percorra/etc
e/home
ao procurar arquivos para copiar) e diretórios de segundo nível com/*/*/
(para/home/user
), mas desmarque diretórios nos quais nenhum arquivo é copiado. Isso é mais conveniente porque você não precisa listar os pais explicitamente. Você poderia até usar--prune-empty-dirs --include='*/'
em vez de contar o número de níveis, mas isso é impraticável aqui, pois o rsync percorre todo o sistema de arquivos para explorar diretórios, embora nenhuma das regras de inclusão possa corresponder a nada fora de/etc
e/home/user/download
. / p>rsync -a --prune-empty-dirs \ --include='/*/' --include='/*/*/' \ --include=/etc/fstab \ --include='/home/user/download/***' \ --exclude='*' / bkp