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

8 réponses

1 2 3 4 5
Avatar
mv
Bernd a soumis à notre sagacité :
Y aurait-il plus simple ?

Et avec un script AppleScript :
- qui te demanderait le nom à rechercher
- qui t'afficherait comme résultat les différents dossiers et fichiers et le nombre
de dossiers/fichiers.
Du genre (attention aux coupures de lignes) :
++++++++++
set terme to {text returned} of (display dialog "Quel locution recherchez-vous ?" ¬
default answer "" buttons {"Annuler", "OK"} default button 2 cancel button 1) as ¬
text -- nom à rechercher
set liste to (do shell script "mdfind -onlyin /Users/bj/Desktop 'kMDItemFSName == ¬
"" & terme & ""wc' ")
set nbOccur to (do shell script "mdfind -onlyin /Users/bj/Desktop ¬
'kMDItemFSName == "" & terme & ""wc' -count")
display dialog liste & return & "Nombre d'items : " & nbOccur
++++++++++
Je suis sûr que Joseph-B peut améliorer ça surtout si tu veux faire des recherches
ailleurs que sur le Bureau et ses sous-dossiers... ;-)
Cordialement
--
Michel Vauquois - <http://michelvauquois.fr>
Avatar
mv
MV wrote:
Je suis sûr que Joseph-B peut améliorer ça surtout si tu veux faire des
recherches ailleurs que sur le Bureau et ses sous-dossiers...

Ça peut être ça par exemple (là aussi, attention aux coupures de
lignes : j'ai sauté des lignes à ce qui devrait être chaque ligne du
script)
++++++++++
set dossier to {text returned} of (display dialog "Faites glisser le
dossier cible de la recherche dans la zone de dialogue ci-dessous :"
default answer "" buttons {"Annuler", "OK"} default button 2 cancel
button 1)
set folderName to quoted form of POSIX path of dossier
set terme to {text returned} of (display dialog "Quel locution
recherchez-vous ?" default answer "" buttons {"Annuler", "OK"} default
button 2 cancel button 1) as text
set nbOccur to (do shell script "mdfind -onlyin " & folderName & "
'kMDItemFSName == "" & terme & ""wc' -count")
set liste to (do shell script "mdfind -onlyin " & folderName & "
'kMDItemFSName == "" & terme & ""wc' ")
set the clipboard to liste & return & return & "Nombre d'item(s) : " &
nbOccur
display dialog (the clipboard) buttons "OK" default button 1
++++++++++
Si la liste des résultats est trop longue, on peut la visualiser ensuite
dans le Presse-Papier.
Cordialement
--
Michel Vauquois - <http://michelvauquois.fr>
Avatar
C=c3=a9sar Pinaud
Le 11/05/18 à 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 ?

Parce que "wc" s'est fait pour compter les "mots" et "cd" s'est destiné
à changer de directory
wc -- word, line, character, and byte count
aucun rapport
Avatar
romer
César Pinaud wrote:
Ok, tout marche bien - merci.
Juste un détail : pourquoi wc alors que cd marche aussi bien ?

Parce que "wc" s'est fait pour compter les "mots" et "cd" s'est destiné
à changer de directory
wc -- word, line, character, and byte count
aucun rapport

Oui mais cd fonctionne aussi bien que wc et donne les mêmes résultats !
(1) :~ ... : mdfind 'kMDItemFSName == "*impots*"cd' -count
36
--
(2) :~ ... : mdfind 'kMDItemFSName == "*impots*"wc' -count
36
Quant à la liste des résultats, c'est la même?
Donc quid de la différence ?
--
A+
--
Romer
Avatar
mv
Bernd a soumis à notre sagacité :
Oui mais cd fonctionne aussi bien que wc et donne les mêmes résultats !

Pas chez moi !
par exemple :
mdfind -onlyin /Users/MV 'kMDItemFSName == "vauquois"wc' -count
me donne 23 résultats alors que :
mdfind -onlyin /Users/MV 'kMDItemFSName == "vauquois"cd' -count
m'en donne... 0 !
Et j'ai plusieurs exemples du même tonneau...
Cordialement
--
Michel Vauquois - <http://michelvauquois.fr>
Avatar
pehache
Le 19/05/2018 à 19:04, César Pinaud a écrit :
Le 11/05/18 à 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 ?

Parce que "wc" s'est fait pour compter les "mots" et "cd" s'est destiné
à changer de directory

Ces "wc" et "cd" dans la requête mdfind n'ont rien à voir du tout avec
les commandes wc et cd du shell
--
"...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
MV wrote:
par exemple :
mdfind -onlyin /Users/MV 'kMDItemFSName == "vauquois"wc' -count
me donne 23 résultats alors que :
mdfind -onlyin /Users/MV 'kMDItemFSName == "vauquois"cd' -count
m'en donne... 0 !
Et j'ai plusieurs exemples du même tonneau...

Incredible!
--
A+
--
Romer
Avatar
Matt
On Sam 19 mai 2018 (19:15),
Bernd wrote:
Oui mais cd fonctionne aussi bien que wc et donne les mêmes résultats !
(1) :~ ... : mdfind 'kMDItemFSName == "*impots*"cd' -count
36
--
(2) :~ ... : mdfind 'kMDItemFSName == "*impots*"wc' -count
36
Quant à la liste des résultats, c'est la même?

Suivant l'endroit où l'on recherche les résultats seront différents.
Donc quid de la différence ?

Message-ID: <pd3okj$n3h$
En plus détaillé :
c : insensible à la casse
d : insensible aux marques diacritiques(lettres accentuées)
w : indique un terme faisant partie du mot (permettra de trouver «
mickey » dans le nom de fichier/contenu du fichier contenant «
MickeyAimeMinnie »
t : compare d'après un terme mis en évidence
hth
--
Bébèlle dit : slt jeune padawan
PéQu ze PolaQ dit : salut jeune padami ^^
* http://bashfr.org/?5105
1 2 3 4 5