Ligne de commande pour chercher dans (et éventuellement nettoyer) une arborescence de fichiers

(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….

Ce contenu a été publié dans Linux, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire