Table des matières

Find est une commande console très puissante pour retrouver des fichiers, mais aussi pour effectuer des opérations sur chacun des fichiers trouvés.
Elle offre beaucoup de possibilités, mais elle est complexe.

Je vais essayer de détailler son fonctionnement :
La commande find s’utilise de la façon suivante : find « où » « quoi » « que faire avec »
Où : c’est le nom du dossier dans lequel la commande va faire la recherche. Tous les sous-dossiers seront analysés si vous avez les droits).
Il est donc possible de limiter la recherche à /home par exemple.
Quoi : c’est le fichier à rechercher.
On peut rechercher un fichier par son nom, mais aussi en fonction de sa date de dernière création, de sa taille, etc. Ce paramètre est obligatoire.
Que faire avec : il est possible d’effectuer des actions automatiquement sur chacun des fichiers trouvés.
L’action la plus courante consiste à afficher simplement la liste des fichiers trouvés, mais nous verrons que nous pouvons faire bien d’autres choses.

Utilisation la plus simple

Rechercher à partir du nom

$ find ~ -name govez.jpg

la console me répond : ./Images/logos/govez.jpg
Si je veux chercher dans le répertoire images uniquement :

$ find ~/Images -name govez.jpg

Recherche à partir de la taille

$ find ~ -size +50M

cherche les fichiers supérieurs à 50Mo

Recherche à partir de la date

Quels fichiers “odt” ai-je ouverts il y a moins de 15 jours ?

$ find ~ -name "*.odt" -atime -15

Spécifier le type de recherche

-type d : pour rechercher uniquement des répertoires (directories).
-type f : pour rechercher uniquement des fichiers (files).

Supprimer les fichiers trouvés

$ find ~ -name "*.jpg" -delete

Attention !! Il n’y aura pas de confirmation !
Avec cette commande, toutes vos images en jpg sont supprimées.

Enchaîner des commandes

Je souhaite afficher les images en png qui m’appartiennent, que j’ai utilisées aujourd’hui et les afficher sous forme de vignettes de 60px dans une même fenêtre de 400px de largeur.
Quelle idée ;-) Non, c’est juste pour l’exemple et expliquer qu’on peut combiner des commandes avec find.
Allons-y !
Je vais utiliser feh, un visualisateur d’images très puissant qu’on utilise en mode console.

$ feh -rm -W 800 --thumb-width 120 `find ~/Images/logos/ -atime -30 -name "*.png"`

Feh affiche les vignettes en utilisant le résultat de la commande find.

Voici le résultat

Find et Feh en action
Une fenêtre de 800 px de large affiche les photos avec une extension .png qui ont été visitées il y a moins de 15 jours.

Liens

Si vous souhaitez vous perfectionner et connaître toutes les options de find, rendez-vous sur : Le manuel de find.