commande find + grep :D - Divers - Linux et OS Alternatifs
Marsh Posté le 04-05-2005 à 14:32:33
find / -name 'hosts' 2&> /dev/null| grep hosts
Marsh Posté le 04-05-2005 à 14:43:20
merci bcp !!!
par contre j'vais en profiter pour demander une précision :
2&> ça veut bien dire qu'on renvoi les données affichées vers quelque chose (exécutable, fichier plat etc...)?
Marsh Posté le 04-05-2005 à 14:59:58
2&>fichier
ça renvoie tout ce qui est écrit sur stderr (sortie d'erreur standard) vers le fichier
Marsh Posté le 04-05-2005 à 18:18:15
sinon, tu peux installer slocate, ça indexe le disque via updatedb (à faire en cron une fois par jour par ex) c'est infiniment plus rapide et moins abscons à utiliser je trouve
Marsh Posté le 04-05-2005 à 19:13:43
je plussoie ardemment
Marsh Posté le 04-05-2005 à 19:47:56
j'abonde aussi dans ce sens, mais le monsieur voulait une solution avec find alors je lui en ai fourni une
Marsh Posté le 05-05-2005 à 15:36:16
merci mjules, j'vais tester ça
fireball->effectivement ta réponse était celle à ma question et en plus maintenant j'fais des trucs marrant avec grep
Marsh Posté le 05-05-2005 à 15:58:48
avec plein d'expressions régulieres ? grep -e ou egrep ?
Marsh Posté le 06-05-2005 à 09:23:47
egrep j'ai pas encore essayé
non j'fais des grep dans des ll, dans des vi, j'fais des 2&> partout c'est la classe
Marsh Posté le 04-05-2005 à 14:27:41
bonjour,
)
.
je me pose une question très bête.
Jusqu'à aujourd'hui pour chercher un fichier je faisais bêtement un find / -name 'windows' et ça me renvoyait tout une palanquée de résultats, principalement des permission denied
(j'fais pas tout en root
Bref je me suis donc décidé à essayer de rajouter un paramètre dans ma commande, le path
Mais bon c'est pas top. Alors je le me suis posé la question suivante.
Mettons que je cherche le fichier hosts mais que je ne saches pas qu'il est dans /etc/
Je ferais ma recherche comme suit : find / -name 'hosts'
Exemple standard de sortie de find :
krapaud@p347:/$ find / -name 'hosts'
find: /lost+found: Permission denied
find: /root/.kde: Permission denied
find: /root/.ssh: Permission denied
find: /root/Desktop: Permission denied
find: /root/.gnupg: Permission denied
find: /root/.synaptic: Permission denied
find: /root/.adobe: Permission denied
find: /root/.mozilla: Permission denied
find: /root/.gnome: Permission denied
find: /root/.gnome_private: Permission denied
find: /root/.gnome2: Permission denied
find: /root/.gnome2_private: Permission denied
find: /root/.gconf: Permission denied
find: /root/.gconfd: Permission denied
/usr/share/hosts
/etc/hosts
find: /etc/ssl/private: Permission denied
(...)
je devrais donc filtrer le texte récurrent, mais il faudrait que ma requête soit donc la suivante :
chercher dans / les fichiers correspondant à "hosts" et n'afficher que les lignes ne renvoyant pas "find"
malin non?
mais j'sais pas dire à grep de faire un filtre à l'envers
si vous savez, je serais heureux de l'apprendre