Speak English? Click here to read my English blog!

Utiliser locate et find pour retrouver ses fichiers rapidement

Posté par jbj le 1 oct 2007 dans GNU/LinuxPas de commentaires

Sous 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.

Si vous avez aimé cet article, aidez-moi à le promouvoir en votant pour lui sur les sites suivants: Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • del.icio.us
  • Scoopeo
  • Tapemoi
  • Technorati
  • Tutmarks
  • Pioche
  • Blogasty
  • Diggons
  • Wikio
Tags: ,

Commenter