Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

cmd Find de Unix

20 réponses
Avatar
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

10 réponses

1 2
Avatar
Paul Gaborit
À (at) Mon, 16 Nov 2015 11:54:16 +0100,
(Bernd) écrivait (wrote):

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 ?



Oui.

Comment y remédier ?



Sans doute en utilisant les bonnes options :

find / -iname '*conflit*' | less

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
romer
Paul Gaborit wrote:

> 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 ?

Oui.

> Comment y remédier ?

Sans doute en utilisant les bonnes options :

find / -iname '*conflit*' | less



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
Avatar
pehache
Le 16/11/2015 à 17:44, Bernd a écrit :
Paul Gaborit wrote:

> 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 ?

Oui.

> Comment y remédier ?

Sans doute en utilisant les bonnes options :

find / -iname '*conflit*' | less



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.




Ajouter "sudo" avant la commande pour qu'elle s'exécute avec les
privilèges admin (root).

sudo find / -iname '*conflit*' | less
Avatar
Jean-Pierre Kuypers
In article (Dans l'article)
<1mdzpo6.1xa8xa018y4yc4N%, Bernd
wrote (écrivait) :

J'ai des tas de lignes parasites qui se terminent par "permission
denied".
...
Serait-il possible (par une option que je ne trouve pas), d'éviter cela
?



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.
Avatar
Sinmian
On Mon, 16 Nov 2015 20:33:33 +0100, Jean-Pierre Kuypers wrote:

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...



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
Avatar
blanc
Bernd wrote:

Serait-il possible (par une option que je ne trouve pas), d'éviter cela
?



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
Avatar
romer
pehache wrote:

Ajouter "sudo" avant la commande pour qu'elle s'exécute avec les
privilèges admin (root).

sudo find / -iname '*conflit*' | less



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
Avatar
romer
Jean-Pierre Kuypers wrote:

In article (Dans l'article)
<1mdzpo6.1xa8xa018y4yc4N%, Bernd
wrote (écrivait) :

> J'ai des tas de lignes parasites qui se terminent par "permission
> denied".
> ...
> Serait-il possible (par une option que je ne trouve pas), d'éviter cela
> ?

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...



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
Avatar
romer
JiPaul wrote:

Bernd wrote:

> Serait-il possible (par une option que je ne trouve pas), d'éviter cela
> ?

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



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
Avatar
pehache
Le 16/11/2015 21:11, Bernd a écrit :
JiPaul wrote:

Bernd wrote:

Serait-il possible (par une option que je ne trouve pas), d'éviter cela
?



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



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




Il manque un "l" ;)

/dev/null


--
"Je suis de formation théologique très rationnelle"
Richard Hachel
1 2