Sous linux, la recherche de fichiers à travers l'arborescence peut se faire via diverses commandes : find, locate, which, whereis, whatis, et apropos. Toutes ne retournent pas forcément les mêmes informations. Je vous propose donc de découvrir ces outils à travers un rapide tour d'horizon de chacun d'eux.
La commande FIND
La commande find est la plus ancienne. N'utilisant pas de base indexée, elle peut être longue à retourner un résultat. Pour utiliser cette commande, il convient de lui préciser un chemin et un (ou plusieurs) critère(s). Les critères peuvent être :
- -name
- -user
- -type (f pour fichier, d pour dossier…)
- -atime (date du dernier accès au fichier)
- -ctime (date du dernier changement du fichier)
- -mtime (date du dernier changement du contenu du fichier)
Voici quelques exemples :
find / -name monfichier
find / -user justegeek
find /home/justegeek -atime +5
La dernière commande retournerais les fichiers du dossier /home/justegeek auxquels personne n'a accédé depuis plus de 5 jours.
La commande LOCATE
Contrairement à la commande find, la commande locate utilise une base de données. Cela permet d'obtenir un résultat plus rapide. Cette base de données est mise à jour par la cron. Mais il est possible de forcer manuellement la mise à jour de cette base avec la commande suivante :
updatedb
Il existe une version sécurisée de la commande locate, il s'agit de slocate. Cette dernière fonctionne de la même manière que locate mais prend en compte les droits des fichiers. Ainsi, l'utilisateur ne verra dans les résultats que les fichiers auxquels il a accès. Par défaut, locate est bien sûr sensible à la casse, mais si vous souhaitez ignorez la casse dans votre recherche, vous pouvez simplement utiliser le paramètre -i.
Voici quelques exemples d'utilisation de la commande locate :
locate fichier.txt
locate -c "*.txt"
La dernière commande retournerais le nombre de fichiers "*.txt" présent sur le système.
La commande WHICH
La commande which sert à localiser l'emplacement d'une commande. Pour cela, elle s'appuie sur la variable PATH. Voici un exemple d'utilisation :
which vi
Cette commande retournera le dossier contenant le binaire vi.
La commande WHEREIS
La commande whereis fonctionne comme la commande which mais elle recherche en plus dans les pages de manuel ainsi que dans les codes sources.
whereis touch
La commande WHATIS
La commande whatis effectue les mêmes recherches que which, mais elle utilise une base de données. Cette base comprend une courte description des commandes issue des manuels, et permet un résultat plus rapide. Exemple :
whateis pwd
Pour créer la base de données on utilise la commande makewhatis.
makewhatis
La commande APROPOS
La commande apropos utilise la même base de données que whatis mais donne plus d'informations sur la commande recherchée.
apropos pwd
Comme évoqué dans le titre de cet article, il s'agit là d'n tour d'horizon rapide. Si vous souhaitez en savoir davantage sur ces différentes commandes, je vous renvoie au manpage de chacune d'entre elle. Cela vous permettra d'avoir une vue complète sur leurs possibilités. 🙂
Partager la publication "La recherche de fichiers sous Linux : comment et avec quel outil ?"