Você quer rsync
:
rsync -va --exclude=foo --exclude=bar ~/directory_to_copy /path/to/copy
--exclude
é usado para excluir arquivos ou diretórios indesejados.
-v
torna o rsync detalhado (opcional).
-a
diz ao rsync para copiar recursivamente e preservar atributos de arquivo. Isso é opcional, mas, se você não usar -a
, provavelmente usará -r
para copiar recursivamente.
Para requisitos mais complexos, as opções excluir e incluir podem ser especificadas. É até possível alterar as configurações de exclusão / inclusão de um diretório para outro, especificando a opção -F
e colocando os arquivos .rsync-filter
em vários locais na hierarquia de diretórios de origem. man rsync
tem detalhes.