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. Quelles différences?

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"
Lire la suite de cet article.
Avec Justegeek

