Il arrive souvent que certains projets distribuent des sources qui sont des copies directes d’un dépot Subversion, c’est le cas par exemple d’egroupware. Le problème avec cela, c’est que l’archive contient un nombre très important de fichiers, qui sont strictement inutiles. Pour les supprimer, la commande suivant fait l’affaire :
find . -name .svn -print0 | xargs -0 rm -rf
D’autres variantes sont bien sur possibles, et rien ne vous empeche d’utiliser cette commande pour supprimer d’autres types de fichiers.
4 comments on “Suppression des fichiers .svn recursif”
Je connaissais ce trick sans -print0 et -0, qu’apportent-ils ?
Comme expliqué dans le man, pour find :
et pour xargs :
un RTFM aurait pu suffire 😀 mais merci pour l’explication.
sinon on peut aussi utiliser que find avec la commande:
find . -type d -name ".svn" -exec rm -rf {} \;
ou:
‘.’ pour dire point de depart le rep courrant.
‘-type d’: que les repertoires
‘-name ".svn"’: dont le nom est .svn
‘-exec’: executer la commande ou ‘{}’ est remplacé par le chemin du fichier trouvé. La syntaxe de ‘-exec’ doit se terminer par ‘;’ mais on met un ‘\’ avant le ‘;’ pour que le shell ne le gére pas comme le caractere de fin de commande.
see also: "man 1 find"