Utiliser locate et find pour retrouver ses fichiers rapidement
Posté par jbj le 1 oct 2007 dans GNU/Linux • Pas de commentairesSous GNU/Linux, il est facile de retrouver rapidement un fichier égaré. A conditions toutesfois de
savoir utiliser à bon escient locate et find, les deux principaux outils mis à
votre disposition.
locate
La commande locate permet de trouver très rapidement un fichier.
Lorsqu’elle est invoquée, locate ne parcours pas l’arborescence de votre/vos disque, mais utilise une base de données afin de retrouver plus rapidement le fichier.
L’avantage est une grande rapiditélors d’une recherche, l’inconvénient quand à lui est que si vous venez de créer le fichier,
il ne sera pas encore dans la base de données, et par conséquent il n’existera pas pour locate.
Voyons de suite comment régler ce problème. La commande updatedb mets à jour la base de données.
La syntaxe générique de locate est simple:
locate monfichier
/home/jb/Desktop/monfichier.txt
/home/jb/Desktop/monfichier.png
Sans option, locate retournera toutes les occurences de monfichier.
Quelques options pour affiner votre recherche
locate "*.php" -q
Recherche tous les fichiers .php et n’affiche pas les messages d’erreurs potentiels.
locate "xorg" -n 10
Recherche xorg et limite le nombre de résultats à 10.
locate INDEX.HTML -i
Recherche insensible à la casse. Locate retournera index.html, INDEX.html, etc.
find
La commande find effectue une recherche dans l’arborescence des disques.
Syntaxe générique:
find répertoire -name monfichier
répertoire désigne le répertoire à partir duquel vous souhaiter commencer la recherche. Utilisez / pour rechercher à partir de la racine et . pour démarrer la recherche dans le répertoire courant.
Comme c’est souvent le cas avec ce genre de programme, vous pouvez utilisez les caractères spéciaux \ et * comme jokers.
Exemple:
find . -name fichier\*.py
Retrouvera tous les fichiers commençant par fichier et terminant par .py.
find permet également de rechercher les derniers fichiers modifiés.
find / -mtime -7
Affichera les fichiers modifiés durant les 7 derniers jours.
find / -mmin -10
La même chose, en utilisant une valeur de 10 minutes.
Une option très puissante de find est exec. Elle permet d’executer une commande directement sur le résultat:
$ find . -name *.gif -exec ls {} \
find va rechercher dans le dossier courant tous les fichiers .gif, et les affichera à l’aide de la commande ls.
L’option ok permet la même chose que exec mais demandera votre confirmation avant d’effectuer la commande. Pratique si vous utilisez find pour retrouver des fichiers à supprimmer et que vous souhaitez garder le controle des opérations.
$ find . -name *.gif -ok rm {} \;
find permet d’utiliser un pipe, qui à pour effet de rediriger le résultat d’une commande vers une autre. Exemple:
$ find / -type l -print | perl -nle '-e || print'
find recherche les liens symboliques et passe la main à l’interpreteur perl qui vérifiera s’ils pointent effectivement vers un fichier/répertoire existant.
Il existe une multitude d’options supplémentaires pour find.
Voyez le manuel à ce sujet.
















