Lundi 25th septembre 2006

by atmaniak

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 Responses to “Suppression des fichiers .svn recursif”

  1. vieux dit :

    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"

  2. greut dit :

    un RTFM aurait pu suffire :-D mais merci pour l’explication.

  3. atmaniak dit :

    Comme expliqué dans le man, pour find :

    -print0 vrai ; affiche le nom complet du fichier sur la sortie standard, suivi d’un caractère nul. Ceci permet aux fichiers dont le nom contient un saut de ligne, d’être correctement interprétés par les programmes utilisant les données en sortie de find.

    et pour xargs :

    -0 Les noms des fichiers d’entrée sont terminés par un caractère nul au lieu d’une espace blanche, et les apostrophes, guillemets et backslashs ne sont pas spéciaux (chaque caractère est utilisé littéralement). Désactive la chaîne de fin de fichier, qui est traitée comme tout autre argument. Utile quand des arguments sont susceptibles de contenir des espaces blanches, des marques de protection ou des backslashs. L’option -print0 de GNU find produit une sortie convenant à ce mode.

  4. greut dit :

    Je connaissais ce trick sans -print0 et -0, qu’apportent-ils ?

· · · ◊ ◊ ◊ · · ·

Leave a Reply