Racine carte Index Rechercher Nouvelles Archives Liens A Propos
[Top Bar]
[Bottom Bar]
[Photo de l'Autheur]

Guido Socher

L'auteur: Aime Linux car c'est un syst�me gratuit et appr�cie les beaucoup les relations avec la communaut� Linux � travers le monde. Il passe son temps libre avec sa petite amie, � �couter les services internatiaunaux de la BBC, roule � bicyclette dans la campagne et adore jouer avec Linux

Sommaire:
Trouver des frichiers d'apr�s leur nom
Vue g�n�rale
Trouver des fichiers d'apr�s leur contenu

Trouver des fichiers

[Illustration]

R�sum�: Cet article est une introduction sur les recherches de fichiers d'apr�s leur nom ou leur contenu.



Trouver des fichiers d'apr�s leur nom

Vous avez surement d�j� �t� confront� � ce type de probl�mes: vous aviez un fichier un peu particulier et vous ne savez plus o� il est.

C'est l� que la commande find vient � point. Comment l'utiliser? find est bien sur accompagn� d'une grande page de manuel, mais jetons un coup d'oeil � quelques "cas normaux ". Pour rechercher un fichier nomm� lostfile.txt � partir du r�pertoire courant et dans toute son l'arborescence:

find . -name lostfile.txt -print

find comprend aussi les jokers. N'oublier pas les guillemets sinon l'interpreteur essaiera de les remplacer avant que find ne les lise. Voici un exemple:

find . -name "lost*" -print

Cette commande peut être plutôt lente si la recherche a lieu dans une grande arborescence. La commande locate s'av�rera alors utile. Elle ne cherche pas vraiment un fichier dans le syst�me, mais dans une base de donn�e. C'est beaucoup plus rapide mais la base de donn�e peut ne pas être � jour. Dans certaines distributions, la base located est mise � jour toutes les nuits mais vous pouvez bien sûr utiliser manuellement la commande updatedb de temps en temps afin d'effectuer la mise � jour de la base. locate effectue des recherches de sous-chaînes.

locate lostfile

Ce qui trouvera les fichiers lostfile.txt ou mylostfile.txt etc...

Jusqu'ici, nous avons recherch� des fichiers dont nous en connaissions exactement le nom. Peut être que le fichier n'�tait pas lostfile.txt mais lastfile.txt ou leastfile.txt et vous ne vous souvenez plus exactement du nom. Comment le retrouvez quand même? Dans ce cas, il faut utiliser un utilitaire tol�rant les fautes appel� ftff. Il recherche un fichier et autorise un certain nombre "d'erreur typographiques". Cette commande trouvera tous ces noms de fichiers l�g�rement "mal orthographi�s":

ftff lostfiles.txt

Le nombre d'erreurs autoris�es d�pend de la longueur du fichier mais peut aussi être fix�e avec l'option -t. Pour autoriser au maximum 2 erreurs et aussi utiliser un joker, tapez:

ftff -t2 "lostfiles*"

Ftff est un programme de ma conception et fait partie d'un paquetage appell� whichman-1.4 qui peut être t�l�charg� depuis

sunsite.unc.edu/pub/Linux/apps/doctools/whichman-1.4.tar.gz

Parfois, vous voudriez trouver des fichiers dans un arbre dont le nom ne contient pas certains caract�res. Par exemple tous les fichiers exept� les .o et .c. Voici quelques fa�on de le faire:

find . ! -name "*.o" ! -name "*.c" -print
find . -print | fgrep -v '.o' | fgrep -v '.c'
Si vous avez la version gnu de find: find | fgrep -v '.o' | fgrep -v '.c'
find | egrep -v '\.[oc]'

Vue g�n�rale du syst�me de fichier

Vous pouvez avoir besoin d'une vue g�n�rale du syst�me de fichier � votre disposition. Par exemple, vous avez un nouveau CD et vous voudriez savoir ce qu'il y a dessus. Vous pourriez simplement utiliser ls -R. Personellement, je pr�f�re la solutions suivante par soucis de clart�: tree ( sunsite.unc.edu/pub/Linux/utils/file/tree-1.2.tgz ) dessine un arbre.

tree
ou avec des noms de fichier longs: tree -fF

Bien sûr il y a aussi le bon vieux find. La version gnu de find est, g�n�ralement fournie avec Linux, et permet aussi de changer le format d'impression afin, par exemple, d'imprimer la taille du fichier avec son nom:

find . -ls
find . -print ou avec gnu find: find
find . -printf "%7s %p\n"

Il existe aussi un habillage perl de la commande ls qui effectue des choses similaires. Il peut être charg� depuis cet endroit: lsperl.gz. Vous trouverez surement d'autres outils de recherche de fichiers, mais ceux l� sont suffisants dans la majorit� des cas.

Trouver des fichiers d'apr�s leur contenu (rechercher des chaînes de caract�res dans les fichiers)

L'utilitaire standard de recherche de chaînes dans les fichiers est grep/egrep pour les expressions r�guli�res et fgrep pour les chaînes litt�rales. Pour chercher une expression dans tous les fichiers du r�pertoire courant, tapez:

egrep -i "expression de recherche" *

Pour rechercher des chaînes dans tous les fichiers de la descendance du r�pertoire courant, vous pouvez combiner find ou un autre outils de recherche de noms de fichiers avec, par exemple, egrep. Il y a plusieurs fa�on de le faire:

egrep -i "expression" `find . -type f -print`
find . -type f -exec egrep -i "expression" /dev/null {} \;
find . -type f -print | xargs egrep -i "expression"

Si cela vous semble difficile � m�moriser, vous pouvez t�l�charger un petit script depuis ici: grepfind.gz. Il s'assure aussi que les caract�res non imprimables sont retir�s au cas ou egrep aurait travers� un fichier binaire.

Un programme tr�s interessant est agrep. Il marche � la base comme egrep mais effectue des recherches tol�rant les fautes. de la sorte, vous pouvez trouver des mots l�g�rement mal orthographi�s. Pour rechercher une expression et autoriser un maximum de 2 erreurs, utilisez:

agrep -i -2 "search exprission" *

Le programme agrep peut être charg� depuis sunsite sunsite.unc.edu/pub/Linux/utils/text/agrep-2.04.tar.Z ou le site original ftp://ftp.cs.arizona.edu/agrep/

Il y a aussi glimpse. C'est un utilitaire de recherche tr�s puissant qui utilise un concept similaire � locate. D'abord, une base de donn�e doit être construite, mais alors, les recherches sont tr�s rapides. Pour construire un index de recherche de tous les fichiers du r�pertoire courant et de sa descendance:

glimpseindex .

Apr�s cela, vous pouvez chercher une chaîne dans tous les fichiers qui ont �t� pr�c�dement index�s

glimpse -i -2 "expression de recherche"

glimpse accepte aussi les fautes (comme agrep) et le -2 autorise deux erreurs. glimpse est disponible � http://glimpse.cs.arizona.edu/


Il y a beaucoup d'utilitaires de recherche disponibles pour Unix et particuli�rement pout Linux. Cet article ne se veut pas exhaustif. Si vous êtes interess� par plus de trucs et astuces ou d'autres utilitaires comme ceux que nous avons d�crits, regardez les fichiers .lsm � http://sunsite.unc.edu/pub/Linux/utils

Amusez vous bien, bonnes recherches.


Traduit par JohnPerr

Ce site web est maintenu par Miguel Angel Sepulveda
© Guido Socher 1998
LinuxFocus 1998