next up previous contents Next: Recherche dans les fichiers. Up: Les commandes de base. Previous: Fichiers compressés.   Table des matières  


5.14 Recherche de fichiers.

Vous pouvez faire usage de la commande find pour rechercher des fichiers. Passez dans le répertoire racine (root ou encore /) et tapez find. Cette commande sonde tous les fichiers en descendant récursivement dans tous les sous-répertoires [la commande va dans les répertoires, les sous-répertoires et leurs sous-répertoires de rang inférieur tout en répétant find]. En d'autres mots, find, exécuté à partir du répertoire racine, affiche tous les fichiers du système. Comme la commande travaillera durant un long moment, vous pourrez l'interrompre en appuyant sur les touches Image key-ctrl-Image key-C.

Maintenant, revenez dans votre répertoire home et exécutez find à nouveau. Vous verrez tous les fichiers de votre répertoire personnel. Vous pouvez spécifier différentes options à find:

find -type d
affiche seulement les répertoires mais pas leurs fichiers,


find -type f
affiche seulement les fichiers et non les répertoires qui les contiennent même si la commande descendra dans chacun d'eux,


find -name <fichier>
trouve exclusivement les fichiers qui ont pour nom <fichier>. Par exemple, testez find -name '*.c' qui détectera tous les fichiers ayant l'extension .c (utiliser l'expression find -name *.c sans les caractères ' ' ne fonctionnera pas). find -name Mary_Jones.lettre détectera le fichier portant le nom Mary_Jones.lettre,


find -taille [[+|-]] <taille>
trouve les fichiers qui ont une taille supérieure à (pour +) ou inférieure à (pour -) <taille> kilooctets ou à la taille spécifiée s'il n'y a pas de signe,


find <répertoire> [<répertoire> ...]
commence la recherche dans chaque répertoire indiqué,
Il existe trop d'options pour ce petit tour d'horizon. Aussi, est-il utile de se reporter à find(1) pour davantage de détails (c'est-à-dire que vous devriez exécuter la commande man 1 find). Regardez aussi l'option -exec qui force find à exécuter une commande pour chaque fichier trouvé, par exemple:

find /usr -type f -exec ls '-al' '{}' ``;'' 


La commande find présente l'inconvénient de lire de manière active les répertoires pour y trouver les fichiers. Ce processus est lent, notamment lorsque vous commencez depuis le répertoire racine. locate <fichier> est une commande alternative. Celle-ci recherche les fichiers dans une base de données établie au préalable. Donc, la recherche est rapide. En contre-partie, il est nécessaire d'utiliser updatedb afin de mettre à jour la base de données des fichiers utilisés par locate. Sur certains systèmes, upadatedb est exécuté automatiquement tous les jours à 4H00.

Testez ces commandes (updatedb prendra quelques minutes):

updatedb

locate rpm

locate deb

locate passwd

locate HOWTO

locate README 


next up previous contents Next: Recherche dans les fichiers. Up: Les commandes de base. Previous: Fichiers compressés.   Table des matières  
1-01-2006