Recherches en ligne de commande
Le
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
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
Bernd
Hello,
#+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
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
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.
Bernd
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.
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
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
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
D'où vient le "17" ??
Même question
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
De la Rochelle?
OK, je ->[ ] ;-)
--
/)
-:oo= Guillaume
)
Je nettoyais mon clavier, et le coup est parti tout seul.
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