14_May 2008
La recherche de fichiers/répertoires dans la console
18:24 - By ldb - Linux : Console - 7 comments
Il existe bien sûr de bons programmes qui permettent en mode graphique de rechercher un fichier ou un dossier. Mais lorsque j'ai découvert la commande locate, qui permet de recherche via la console, je n'ai plus utilisé une interface graphique. Pour commencer, créer ou mettez à jour votre base de donnée qui vous permettra de rechercher des fichiers dedans :
user@localhost~$ su -
Password :
[root@localhost ~]# updatedb
Cela peut prendre plusieurs minutes avant de se finir. Une fois que c'est fait, recherchez votre fichier ou votre répertoire par son nom en tapant :
locate
nom du fichier ou du répertoire
Mais attention, car si vous recherchez un répertoire qui contient de nombreux fichiers et dossiers, vous allez vous retrouver avec une liste démeusurée de résultats. locate (ou slocate dans sa version sécurisée) possède un certains nombre d'options qui vous permettront d'affiner vos résultats. Voici un extrait du manuel de locate à la rubrique Options.
-u
Créer une base de données slocate débutant au chemin /.
-U <rép>
Créer une base de données slocate débutant au chemin <rép>.
-e <rép1,rép2,...>
Exclure des répertoires de la base de données slocate.
-f <type_sf1,...>
Exclure les fichiers situés dans des systèmes de fichiers spécifiques de la base de données slocate.
-c
Analyser « /etc/updatedb.conf » lors de la mise à jour de la base de données slocate.
-l <niveau>
Niveau de sécurité. 0 désactive la sécurisation. Cela accélérera la recherche. 1 active la sécurisation. C’est le comportement par défaut.
-i
Effectuer une recherche non sensible à la casse.
-q
Mode silencieux. Les messages d’erreur sont supprimés.
-n <nombre>
Limiter le nombre de résultats affichés à <nombre>.
-r <regexp>
--regexp=<regexp>
Rechercher des fichiers dans la base de données en utilisant une expression rationnelle POSIX de base.
-o <fichier>
--output=<fichier>
Spécifier la base de données à créer.
-d <chemin>
--database=<chemin>
Spécifier le chemin des bases de données où chercher.
7 comments
Hum, normalement updatedb est dans une tâche cron (bi)quotidienne
Ou alors, ils l'ont viré de Fedora et ils utilisent cette chose infâme de beagle ?
Je ne crois pas. Mais je lance toujours un updatedb avant de faire mes recherches. Comme j'ajoute et supprime beaucoup de fichiers, au moins je suis sûre que tout est là
Hum bizarre.
T'as rien dans ton /etc/cron.daily ?
[root@localhost ~]# cd /etc/cron.daily/
[root@localhost cron.daily]# dir
000-delay.cron 0logwatch logrotate mlocate.cron rpm tmpwatch
0anacron cups makewhatis.cron prelink tetex.cron
Hum hum, et dans ton "mlocate.cron", si tu l'ouvres avec vim, y a pas un "updatedb" quelque part?
(je tatonne mais je suis Gentooiste moi hein O-) )
il y a ça dedans :
#!/bin/sh
nodevs=$(< /proc/filesystems awk '$1 == "nodev" { print $2 }')
renice +19 -p $$ >/dev/null 2>&1
ionice -c2 -n7 -p $$ >/dev/null 2>&1
/usr/bin/updatedb -f "$nodevs"
Ouaip, bah ça devrait être bon.
Ca change la priorité du processus pour la mettre au plus bas (19) pour ne pas ralentir ton pc... mais normalement c'est bon.
Ou alors, cron n'est pas lancé par défaut sous Fedora? o_O'.
Enfin bref, voilou :D