La commande find est ultra puissante, elle peut rechercher plein de fichiers en un rien de temps, et on peut y enchaîner des commandes, comme par exemple effacer tout ce qui a été trouvé.

Par exemple, je voulais trouver toutes les images et toutes les archives qui encombrent un répertoire donné et surtout tout ses sous-répertoires. Plutôt que de se déplacer un par un dans tout les sous-répertoire, laissons la commande find le faire toute seule comme une grande.

Il faut d’abord se placer dans le dossier juste au-dessus des autres sous-dossiers qu’on veut voir parcourir. Puis :

find . \( -iname *.jpeg -o -iname *.png -o -iname *.jpg -o -iname *.zip -o -iname *.tif \) -type f -exec rm -f {} \;

Et voilà ! En une seconde, toutes les images et les archives disséminées dans l’avalanche de sous-dossiers qui était là ont disparu.

Explications :

find : le nom de la commande

le point . : pour dire qu’on veut attaquer depuis le répertoire courant

les \(… … … \) : servent à encadrer les conditions de la recherche

-iname : veut dire qu’on va chercher sur le nom, qu’il soit en majuscule ou en minuscule

*.jpeg : veut dire qu’on va chercher tout les fichiers qui se terminent par .jpeg

-o : c’est un OU. Find cherche ou ça ou ça, et dès qu’il a trouvé, il s’arrête d’analyser le nom et passe au fichier suivant. Par exemple quand il a trouvé image.jpeg, ça suffit, il va pas s’amuser à analyser si le nom contient aussi un .png

-type f : on cherche que les noms de type fichier (pas les répertoires ni les liens)

-exec rm {} : on lui demande d’exécuter la commande d’effacement rm en prenant comme comme fichier à effacer ce qui a trouvé précédemment (c’est {} qui figure « ce qui a été trouvé précédemment »)

\; : sert à clore la ligne.

Source : John du salon Jabber Mandriva et la page La commande find ou la puissance de la recherche.