Supprimer récursivement les files SVN

J'apprends encore le shell bash.

Je veux récursivement find et supprimer des files svn dans les directorys enfants d'un dossier donné. J'ai fait l'erreur de vérifier au lieu de simplement cloner. Donc j'essaye de nettoyer mon gâchis.

J'ai essayé ces mais j'ai seulement la sortie de tous les files trouvés:

rm | find -name ".svn"

Quand j'exécute ceci, je n'ai pas de sortie et les files sont toujours là: find . -executable -o ! -regex '.*\.svn' -exec rm -i {} \+ find . -executable -o ! -regex '.*\.svn' -exec rm -i {} \+

La méthode la plus simple serait d' exporter la révision que vous voulez au lieu de la vérifier. Essayez svn help export sur le shell bash.

Si vous voulez vraiment utiliser find pour parcourir et supprimer tous les directorys enfants appelés .svn vous feriez ceci:

find /path/to/search -type d -iname .svn -print0 | xargs -0 rm

MODIFIER

  • -type d #look pour les directorys seulement
  • -iname .svn #case insensible à la casse, probablement pas nécessaire
  • -print0 #imprime le nom complet du file suivi d'un caractère nul au lieu de newlines. il permet de passer correctement les noms de files avec des espaces ou d'autres espaces à xargs -0
 shopt -s globstar rm -r **/.svn 

La plupart des versions de find ont une action de suppression:

 $ find /path/in/question -type d -name .svn -delete 

Assurez-vous de l'exécuter sans supprimer et regardez d'abord les résultats!