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
Matt
On Jeu 10 mai 2018 (10:02),
Bernd wrote:
Hi,

Hello,
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é.

#+v
% mdfind -onlyin ~/Documents 'kMDItemFSName == "mickey"wc'
#v-
Permettra de rechercher tout fichiers/répertoires contenant le mot
« Mickey » ou « mickey » dans leurs noms de fichier dans le répertoire
~/Documents
hth
--
<AI> On m'a dis qu'une clé USB c'est un truc pour enregistrer dessus...
<P> Oui, mais faut pas secouer, sinon ça mélange les fichiers.
<AI> C'est vrai ?!
* http://bashfr.org/?5214
Avatar
romer
Matt wrote:
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é.

#+v
% mdfind -onlyin ~/Documents 'kMDItemFSName == "mickey"wc'
#v-

Ok, tout marche bien - merci.
Juste un détail : pourquoi wc alors que cd marche aussi bien ?
Dernière requète : est-il possible de compter le nb d'enregistrements
trouvés ?
--
A+
--
Romer
Avatar
pehache
Le 11/05/2018 à 09:36, Bernd a écrit :
Matt wrote:
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é.

#+v
% mdfind -onlyin ~/Documents 'kMDItemFSName == "mickey"wc'
#v-

Ok, tout marche bien - merci.
Juste un détail : pourquoi wc alors que cd marche aussi bien ?
Dernière requète : est-il possible de compter le nb d'enregistrements
trouvés ?

Tu ajoutes à la fin de la commande précédente :
| wc -l
Donc :
#+v
% mdfind -onlyin ~/Documents 'kMDItemFSName == "mickey"wc' | wc -l
#v-
"man wc" pour en savoir plus.
Avatar
Matt
On Ven 11 mai 2018 (09:36),
Bernd wrote:
Ok, tout marche bien - merci.
Juste un détail : pourquoi wc alors que cd marche aussi bien ?

Relis bien ce que j'ai indiqué ;)
- « w » permet de rechercher le terme dans les noms de fichiers, évitant
l'usage du caractère joker « * ».
- « c » permet d'ignorer la casse du terme à rechercher.
Dernière requète : est-il possible de compter le nb d'enregistrements
trouvés ?

Avec la commande wc(1) comme l'indique pechache avec l'option « -l ».
hth
--
Number: Tu veux voir la bétise humaine?
Ero: Pourquoi, tu passes à la maison?
Numb: -_-
* http://bashfr.org/?4800
Avatar
romer
pehache wrote:
Dernière requète : est-il possible de compter le nb d'enregistrements
trouvés ?

Tu ajoutes à la fin de la commande précédente :
| wc -l
Donc :
#+v
% mdfind -onlyin ~/Documents 'kMDItemFSName == "mickey"wc' | wc -l
#v-
"man wc" pour en savoir plus.

Oui, je connais la commande que j'utilise avec un alias appelé nb.
Mais mdfind -onlyin ~/Documents 'kMDItemFSName == "mickey"wc' | wc -l
donne le nb de fichiers dans le dossier dans lequel on se situe et non
le nb d'enregistrements trouvés par la commande mdfind.
Il faudrait ajouter à la fin de la ligne quelque chose du genre -exec {}
;
mais je n'arrive à rien avec cela.
--
A+
--
Romer
Avatar
pehache
Le 11/05/2018 à 12:38, Bernd a écrit :
pehache wrote:
Dernière requète : est-il possible de compter le nb d'enregistrements
trouvés ?


Tu ajoutes à la fin de la commande précédente :
| wc -l
Donc :
#+v
% mdfind -onlyin ~/Documents 'kMDItemFSName == "mickey"wc' | wc -l
#v-
"man wc" pour en savoir plus.

Oui, je connais la commande que j'utilise avec un alias appelé nb.
Mais mdfind -onlyin ~/Documents 'kMDItemFSName == "mickey"wc' | wc -l
donne le nb de fichiers dans le dossier dans lequel on se situe et non
le nb d'enregistrements trouvés par la commande mdfind.
Il faudrait ajouter à la fin de la ligne quelque chose du genre -exec {}
;
mais je n'arrive à rien avec cela.

A mon avis tu ne tapes pas correctement la barre verticale (pipe) "|",
qu'on obtient par ALT-SHIFT-L
Avatar
romer
pehache wrote:
Il faudrait ajouter à la fin de la ligne quelque chose du genre -exec {}
;
mais je n'arrive à rien avec cela.

A mon avis tu ne tapes pas correctement la barre verticale (pipe) "|",
qu'on obtient par ALT-SHIFT-L

si, si - j'y fais attention - je fais même par sécurité un copier-coller
de l'ex. envoyé.
Voici une recherche et le résultat :
avec : | wc -l
le résultat de la recherche à disparu - il ne reste que le nb de
résultats (tj. le même puisque je ne change pas de répertoire)
Ex :
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "pivoines"wc'
/Users/bj/Desktop/Pivoines_110518.jpg
17
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "pivoines"wc' | wc
-l
17
Pour retrouver la liste des occurences il faut ajouter un 'ls'
ex : mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName = "pivoines"wc';ls | wc -l
/Users/bj/Desktop/Pivoines_110518.jpg
17
--
A+
--
Romer
Avatar
pehache
Le 11/05/2018 à 18:12, Bernd a écrit :
pehache wrote:
Il faudrait ajouter à la fin de la ligne quelque chose du genre -exec {}
;
mais je n'arrive à rien avec cela.

A mon avis tu ne tapes pas correctement la barre verticale (pipe) "|",
qu'on obtient par ALT-SHIFT-L

si, si - j'y fais attention - je fais même par sécurité un copier-coller
de l'ex. envoyé.
Voici une recherche et le résultat :
avec : | wc -l
le résultat de la recherche à disparu - il ne reste que le nb de
résultats (tj. le même puisque je ne change pas de répertoire)
Ex :
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "pivoines"wc'
/Users/bj/Desktop/Pivoines_110518.jpg
17

D'où vient le "17" ??
mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == "pivoines"wc' | wc
-l
17

Même question
Pour retrouver la liste des occurences il faut ajouter un 'ls'
ex : mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName = > "pivoines"wc';ls | wc -l
/Users/bj/Desktop/Pivoines_110518.jpg
17

Là c'est c'est normal : le ";" sépare les commandes. La première c'est
ton mdfind d'origine, et la seconde c'est "ls | wc -l" qui en effet te
retourne le nombre de fichiers/dossiers (17) dans le dossier courant.
--
"...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
Le Moustique
Le 11/05/2018 à 21:33, pehache a écrit :
D'où vient le "17" ??

De la Rochelle?
OK, je ->[ ] ;-)
--
/)
-:oo= Guillaume
)
Je nettoyais mon clavier, et le coup est parti tout seul.
Avatar
romer
pehache wrote:
Voici une recherche et le résultat :
avec : | wc -l
le résultat de la recherche à disparu - il ne reste que le nb de
résultats (tj. le même puisque je ne change pas de répertoire)
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.
--
A+
--
Romer
1 2 3 4 5