(Bref) blabla d’introduction
Dans certaines occasions, on peut avoir besoin de nettoyer une arborescence de fichiers (par exemple supprimer les fichiers thumbs.db générés par Windows et qui n’ont aucune utilité sous Linux). Les commandes données ci-dessous sont là pour répondre à ce besoin.
Par proximité évidente, il est également donné des fonctions intéressantes de recherches
Action
La commande de base est :
find . -name "*.jpg" | xargs rm
Cette commande supprime tous les fichiers jpg.
Cependant, dans le cas où le chemin d’accès aux fichiers contient des noms avec espaces (par exemple : /home/moi/chemin avec des espaces/autresRepertoires), une erreur va vous être retournée. Dans ce cas, préférez la commande suivante :
find . -name "*.jpg" -print0 | xargs -0 rm -v
Le ‘-v’ permet de voir ce que fait le système
Autre commande : supprimer les répertoires vides
find . -type d -empty -print0 | xargs -0 rmdir -v
A présent, rechercher et supprimer les fichiers qui ne sont pas des fichiers mp3 dans le répertoire courant
find . ! -type d ! -name "*.mp3" -print0 | xargs -0 rm -v
Supprimer les doublons de fichiers mp3 (nommés toto(1).mp3)
find . -name "*(?).mp3" -print0 | xargs -0 rm -v
Enfin, quelques astuces en vrac sur la commande find :
- remplacer name par iname rend la recherche insensible à la casse
- si on souhaite rechercher les fichiers de type mP3 et MP3 mais pas de type mp3 ni Mp3, on peut utiliser le champ de recherche « *.[mM]P3 »
- deplacer tous les fichiers d’une arborescence qui ne sont pas des mp3 : find . -type f ! -iname « *.mp3 » -exec cp {} ../temp/ \;
A suivre….