J'essaie de copier tous les fichiers et dossiers d'un répertoire à un autre, mais j'exclus certains fichiers. Plus précisément, je souhaite exclure les fichiers et dossiers de subversion. Cependant, j'aimerais une solution générale mais concise.
J'imagine que je trouverai la nécessité d'exclure plusieurs types de fichiers dans un avenir proche. Par exemple, je souhaiterais peut-être exclure .svn, * .bak et * .prj.
Voici ce que j'ai préparé pour, mais cela ne fonctionne pas pour moi. La première partie, trouver des travaux, mais je fais quelque chose de mal avec xargs et cp . J'ai essayé cp avec et sans le -R
. En outre, j'utilise OS X et il semble avoir une version moins en vedette de xargs que les systèmes Linux.
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
drapeau, j'en suis presque sûr. Supprimez cela et ça devrait aller (même si vous voudrez peut-être ajouter -mindepth 1
pour ignorer le dossier du répertoire de haut niveau que vous ne voulez pas copier, je suppose)
find
commande utilise correctement-prune
pour exclure les éléments .svn, vous passez ensuite l'-R
indicateurcp
auquel indique que cette commande est récursive. Dans ce cas, vous perdez la granularité que vous aviez dans lafind
commande. Je vais bricoler avec cela pendant une minute, mais je pense que la réponse n'est pas à utiliser-R
dans lacp
commande.