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

Recherches en ligne de commande

48 réponses
Avatar
romer
Hi,

On a récemment parlé de commandes permettant de chercher très rapidement
des fichiers dans le disque dur à l'aide du terminal.
Ex :
mdfind 'kMDItemFSName == "*Mickey*"cd'
trouve toutes les occurences de 'Mickey' dans le nom des fichiers.

Mais compte tenu parfois du nb énorme de fichiers trouvés, est-il
possible de resteindre cette recherche à un dossier particulier, comme
par ex. le fichier ~/ ?
Je n'ai pas trouvé cette possibilité.

--
A+
--
Romer

10 réponses

1 2 3 4 5
Avatar
pehache
Le 12/05/2018 à 18:32, Bernd a écrit :
Ex :
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "pivoines"wc'
/Users/bj/Desktop/Pivoines_110518.jpg
17

D'où vient le "17" ??

Le nombre invariable de fichiers dans le dossier où je me trouve lors de
l'envoi de la commande.
Quel que soit l'occurence demandée (toto, mickey, trump, etc.), je
trouverai 17.

Ce que je veux dire, c'est que la commande que tu as copiée/collée n'a
aucune raison de renvoyer un quelconque nombre (17 ou autre chose, peu
importe).
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
Avatar
romer
pehache wrote:
Le nombre invariable de fichiers dans le dossier où je me trouve lors de
l'envoi de la commande.
Quel que soit l'occurence demandée (toto, mickey, trump, etc.), je
trouverai 17.

Ce que je veux dire, c'est que la commande que tu as copiée/collée n'a
aucune raison de renvoyer un quelconque nombre (17 ou autre chose, peu
importe).

mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "pivoines"wc' | wc
-l
Je parle de celle-ci. Elle me renvoit le nb de fichiers dans le
répertoire de travail. Je souhaitais le nb d'enregistrements trouvés.
Si ce n'est pas cela, j'en perds mon unix ;-)
--
A+
--
Romer
Avatar
pehache
Le 12/05/2018 à 19:10, Bernd a écrit :
pehache wrote:
Le nombre invariable de fichiers dans le dossier où je me trouve lors de
l'envoi de la commande.
Quel que soit l'occurence demandée (toto, mickey, trump, etc.), je
trouverai 17.

Ce que je veux dire, c'est que la commande que tu as copiée/collée n'a
aucune raison de renvoyer un quelconque nombre (17 ou autre chose, peu
importe).

mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "pivoines"wc' | wc
-l
Je parle de celle-ci.

Ce n'est pas celle-ci que je commentais sur ton mail précédent.
Elle me renvoit le nb de fichiers dans le
répertoire de travail.

J'en doute fortement.
Je souhaitais le nb d'enregistrements trouvés.
Si ce n'est pas cela, j'en perds mon unix ;-)

--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
Avatar
romer
pehache wrote:
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "pivoines"wc' | wc
-l

Je parle de celle-ci.

Ce n'est pas celle-ci que je commentais sur ton mail précédent.
Elle me renvoit le nb de fichiers dans le
répertoire de travail.

J'en doute fortement.

Je reste dans le même répertoire et lance des recherches différentes sur
mickey, toto, popeye, trump, etc (j'en ai déjà parlé) et le résultat est
invariablement 17
Donc, c'est bien le nb de fichiers dans le répertoire (en l'occurence
celui de départ).
Du reste un simple 'wc' dans le répertoire de départ me donne 17.
Donc, il n'y a pas de doutes à avoir sur le résultat de la commande :
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "nomquelconque"wc' |
wc -l - j'obtiens et obtiendrai tj 17 en restant dans le répertoire de
départ.
--
A+
--
Romer
Avatar
pehache
Le 13/05/2018 à 11:42, Bernd a écrit :
pehache wrote:
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "pivoines"wc' | wc
-l


Je parle de celle-ci.


Ce n'est pas celle-ci que je commentais sur ton mail précédent.
Elle me renvoit le nb de fichiers dans le
répertoire de travail.

J'en doute fortement.

Je reste dans le même répertoire et lance des recherches différentes sur
mickey, toto, popeye, trump, etc (j'en ai déjà parlé) et le résultat est
invariablement 17
Donc, c'est bien le nb de fichiers dans le répertoire (en l'occurence
celui de départ).
Du reste un simple 'wc' dans le répertoire de départ me donne 17.
Donc, il n'y a pas de doutes à avoir sur le résultat de la commande :
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "nomquelconque"wc' |
wc -l - j'obtiens et obtiendrai tj 17 en restant dans le répertoire de
départ.

Eh bien non, ce n'est pas censé se comporter de cette façon, et chez moi
ça ne se comporte d'ailleurs pas de cette façon. Si je copie/colle ta
commande, elle ne me renvoie en aucun cas le nombre de fichiers dans le
répertoire courant, mais bien le nombre de résultats obtenus par mdfind.
Il y a un truc qui cloche dans ton histoire.
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
Avatar
romer
pehache wrote:
Eh bien non, ce n'est pas censé se comporter de cette façon, et chez moi
ça ne se comporte d'ailleurs pas de cette façon. Si je copie/colle ta
commande, elle ne me renvoie en aucun cas le nombre de fichiers dans le
répertoire courant, mais bien le nombre de résultats obtenus par mdfind.
Il y a un truc qui cloche dans ton histoire.

Très bizarre en effet - je vais faire des recherches plus approfondies.
Comme il pleut à verse dans la vallée du Rhône, j'ai le temps de m'y
coller :-)
Mais je ne vois pas trop par quoi commencer...
--
A+
--
Romer
Avatar
mv
Bernd a soumis à notre sagacité :
Donc, il n'y a pas de doutes à avoir sur le résultat de la commande :
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "nomquelconque"wc' |
wc -l - j'obtiens et obtiendrai tj 17 en restant dans le répertoire de
départ.

Je confirme ce que te répond pehache : il y a quelque chose qui cloche dans ce que tu
racontes !
Ici, la commande
mdfind -onlyin /Users/MV/Desktop 'kMDItemFSName == "nomquelconque"wc' | wc -l
me répond : 0
et la commande
mdfind -onlyin /Users/MV/Desktop 'kMDItemFSName == "scripts"wc' | wc -l
me répond : 1 (j'ai effectivement 1 dossier qui s'appelle "Essais Scripts"
et la commande
mdfind -onlyin /Users/MV/Desktop 'kMDItemFSName == "scpt"wc' | wc -l
me répond : 18 (j'ai 18 scripts AppleScript sur le Bureau et dans des sous-dossiers du
Bureau).
Cordialement
--
Michel Vauquois - <http://michelvauquois.fr>
Avatar
josephb
MV explicita :
mdfind -onlyin /Users/MV/Desktop 'kMDItemFSName == "scpt"wc' | wc -l
me répond : 18 (j'ai 18 scripts AppleScript sur le Bureau et dans des
sous-dossiers du Bureau).

L'argument -count donnerait le même résultat que le pipe wc (détail en passant)
Cela dit, je constate chez moi la chose bizarre suivante
J'ai 9 scripts ".scpt" dans la hiérarchie du Bureau
la commande ci-dessus ne m'en trouve que 6.
J'ai pu identifier les 3 fichiers (scripts) non décomptés :
leur nom se terminant par la chaîne "PowerMail.scpt", si je lance leur recherche
directement avec SpotLight, ils sont instantanément trouvés, preuve qu'ils sont
bien indexés dans le kMDItemFSName.
Toujours par SpotLight, la requête équivalente à la commande me donne bien les 9
scripts, dont les 3 introuvables par mdfind
Donc la fiabilité du truc, je m'interroge…
--
J. B.
Avatar
mv
Joseph-B a soumis à notre sagacité :
J'ai 9 scripts ".scpt" dans la hiérarchie du Bureau
la commande ci-dessus ne m'en trouve que 6.

Et la commande sans le "| wc -l" (ou "-count") n'en liste que 6 aussi,
j'imagine ?
Étonnant, non ?
Cordialement
--
Michel Vauquois - <http://michelvauquois.fr>
Avatar
romer
MV wrote:
Joseph-B a soumis à notre sagacité :
J'ai 9 scripts ".scpt" dans la hiérarchie du Bureau
la commande ci-dessus ne m'en trouve que 6.

Et la commande sans le "| wc -l" (ou "-count") n'en liste que 6 aussi,
j'imagine ?
Étonnant, non ?

On lance bien un shell "bash" ?
--
A+
--
Romer
1 2 3 4 5