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

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