Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Utiliser find pour supprimer des dossiers

24 Avril 2009 , Rédigé par Roger Bunivot Publié dans #linux

Supposons que dans le dossier data vous vouliez supprimer les dossiers ayant plus de 45 jours, la commande find peux le faire pour vous:


find chemin_du_dossier_data  -prune   -ctime +45 -exec rm -r {} \; -print

-prune, permet de ne pas rentrer dans le dossier à supprimer. En effet find semble supprimer d'abord le dossier tout en gardant en mémoire qu'il y avait des fichiers dedans. Puis il essaye d'effacer ces fichiers qui n'existe plus et affiche donc un message d'erreur.
L'utilisation de -prune permet d'éviter cette affichage.

-ctime permet de spécifier un délai depuis lequel le fichier n'a pas été modifier, (voir man find pour plus d'option).

+45 paramètre de ctime, comprendre +45*24h.

-exec une fois que find à trouvé des fichiers il applique à chacun la commande en paramètre de exec.

-rm -r {}\; la commande passé en paramètre de exec, qui permet de supprimer des dossiers.le \; permet de spécifier la fin de la commande de exec.

-print permet d'afficher le dossier en cours de suppression.

Partager cet article

Repost 0

Commenter cet article