Estou tentando copiar todos os arquivos e pastas de um diretório para outro, mas excluir determinados arquivos. Especificamente, quero excluir arquivos e pastas do subversion. No entanto, eu gostaria de uma solução geral, porém concisa.
Imagino que encontrarei a necessidade de excluir vários tipos de arquivos em um futuro próximo. Por exemplo, convém excluir .svn, * .bak e * .prj.
Aqui está o que eu montei, mas não está funcionando para mim. A primeira parte, encontrar obras, mas estou fazendo algo errado com xargs e cp . Eu tentei cp com e sem o -R
. Além disso, estou usando o OS X e parece ter uma versão menos característica do xargs do que os sistemas Linux.
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
bandeira, tenho certeza. Retire isso e você deve estar bem (embora você pode querer adicionar -mindepth 1
a ignorar a pasta diretório principal que você não deseja copiar, presumo)
find
comando use corretamente-prune
para excluir itens .svn, você passa o-R
sinalizador para ocp
qual diz que esse comando é recursivo. Quando isso acontece, você perde a granularidade que tinha nofind
comando. Vou mexer nisso por um minuto, mas acho que a resposta é não usar-R
nocp
comando.