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