cmd Find de Unix
Le
romer

Hi,
Je cherche un fichier précis sur tout le DD interne par la commande
shell via le terminal :
find / '*conflit*' | less
Surprise : le terminal ne trouvant pas ce fichier, me sort tous les >
800.000 fichiers du DD au lieu de sortir une liste vide. Ce qui prend un
temps interminable.
Est-ce un comportement normal ?
Comment y remédier ?
Tkx
--
A+
--
Romer
Je cherche un fichier précis sur tout le DD interne par la commande
shell via le terminal :
find / '*conflit*' | less
Surprise : le terminal ne trouvant pas ce fichier, me sort tous les >
800.000 fichiers du DD au lieu de sortir une liste vide. Ce qui prend un
temps interminable.
Est-ce un comportement normal ?
Comment y remédier ?
Tkx
--
A+
--
Romer
(Bernd) écrivait (wrote):
Oui.
Sans doute en utilisant les bonnes options :
find / -iname '*conflit*' | less
--
Paul Gaborit -
Merci.
En effet, ainsi ça marche ; mais pas encore nickel-chrome, dommage.
J'ai des tas de lignes parasites qui se terminent par "permission
denied".
Genre : find: /System/Library/Caches/com.apple.coresymbolicationd:
Permission denied
Serait-il possible (par une option que je ne trouve pas), d'éviter cela
?
On pourrait restreindre le domaine de recherche mais je risque de passer
à côté d'un item qui se trouve ds le système et que je dois localiser.
A+
--
Romer
Ajouter "sudo" avant la commande pour qu'elle s'exécute avec les
privilèges admin (root).
sudo find / -iname '*conflit*' | less
Les Unix-chiens, pas toujours avares d'éviter de faire simple quand on
peut faire compliqué, exposent deux voies majeures :
- rediriger tous les messages d'erreur vers /dev/null
find . -name "filetofind" 2>/dev/null
- n'y rediriger que les messages "Permission denied" :
find . -name "filetofind" 2>&1 | grep -v 'permission denied'
- éviter de (tenter de) parcourir les répertoires non lisibles :
find . -type d ! -perm -g+r,u+r,o+r -prune -o -name "filetofind" -print
<http://superuser.com/questions/179978/avoid-permission-denied-spam-when-
using-find-command>
Note : Je ne vois pas très bien en quoi fr.comp.os.mac-os.x est con-
cerné. J'aurais interrogé sur fr.comp.sys.mac.programmation, plus
repère des Macintochiens Unix-chiens...
--
Jean-Pierre Kuypers
Veuillez éviter les phrases dans leur con-
texte avant de terminer sciemment.
Anarchy in the FCSM.* après les machines à coudre, les lignes de commande
cousues de fil blanc (pour continuer les calembours à la noix)
;-)
--
envoyé depuis mon PC
Si les mouches votaient, ils se parfumeraient au fumier
Par une option je ne sais, mais tu peux faire une redirection de la
sortie d'erreur (n°2) vers un fichier ou mieux encore vers /dev/null :
find / -iname '*conflit*' 2> /dev/nul
Au lieu du critère -iname, tu peux aussi utiliser -name si tu es sûr de
la casse du mot que tu cherches.
Les autres critères de recherche de find sont dans le manuel :
man find
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Je l'avais fait aussi en constatant que pleins d'accès retaient
interdits mais ça ne change rien. Il y en a (à vue de nez) peut-être
apparemment moins mais il en reste une palanquée.
--
A+
--
Romer
Sans doute - cela ne m'est pas venu à l'esprit.
Mais la suggestion est bonne : le clan des geeks unixiens serait en
effet plus adéquat.
--
A+
--
Romer
Le man find est tellement abscons et surtout dépurvu d'au moins un
exemple qu'il me sort par les yeux ;)
J'ai essayé et la réponse est Nein!
sudo find / -iname '*conflit*' 2> /dev/nul
-bash: /dev/nul: Permission denied
--
A+
--
Romer
Il manque un "l" ;)
/dev/null
--
"Je suis de formation théologique très rationnelle"
Richard Hachel