Come faccio a impostare la ricerca predefinita di Finder per i nomi dei file che INCLUDONO il termine di ricerca (anziché solo iniziare con esso)? Yosemite

1

Sto usando Yosemite (OS X 10.10.1). Se cerco il termine "foo" e voglio un elenco di tutti i file che includono quel termine, prendo foo.doc e bar.foo.doc e foodstuffs.xlsx e persino The Foo History. Ma non include snafoos.docx e AllTheFooReports.xlsx. Come posso cambiare il comportamento (ovvio!?!) Di restituire tutti i risultati che includono il termine di ricerca?

Mi piacerebbe essere in grado di farlo da Finder, non solo dal terminale.

    
posta rrraven 26.03.2015 - 17:36
fonte

2 risposte

3

Il Finder cerca i prefissi delle parole.

Se salvi la ricerca come una Smart Folder e poi controlli che usando un editor di testo (ad es. TextMate) vedrai la query Spotlight non elaborata:

((kMDItemDisplayName = "foo*"cdw))

Il modificatore "w" dice a Spotlight di cercare parole. Il carattere jolly "*" alla fine della stringa di ricerca fa in modo che Spotlight cerchi prefissi di parole. Corrisponde a nomi che contengono una parola che inizia con "pippo".

Questo corrisponde a tutti i tuoi esempi tranne uno. "foo" si trova all'inizio del nome del file, dopo uno spazio o una punteggiatura o è in maiuscolo. L'eccezione è "snafoos", dove "foo" è solo una sequenza di lettere nel mezzo della parola.

È possibile modificare la query nella cartella smart in:

((kMDItemDisplayName = "*foo*"cd))

Oppure fai clic sul pulsante "+" sotto il campo di ricerca in Finder e aggiungi un "nome" "contiene il criterio" "foo".

O usa mdfind nel Terminale:

mdfind -onlyin . '((kMDItemDisplayName = "*foo*"cd))'

O usa HoudahSpot (di cui sono lo sviluppatore) per avere più controllo sulla tua ricerca.

    
risposta data 28.03.2015 - 00:35
fonte
2

Se sei bloccato puoi usare un comando find in una finestra di terminale.

Apri una finestra di terminale e digita: $ find . -iname \*foo\*

Ecco un esempio che utilizza i file che hai menzionato nella tua domanda.

mgagnon-mbp:tmp mgagnon$ ls
AllTheFooReports.xlsx   bar.foo.doc     foo.doc         foodstuffs.xlsx     snafoos.docx

mgagnon-mbp:tmp mgagnon$ find . -iname \*foo\*
./AllTheFooReports.xlsx
./bar.foo.doc
./foo.doc
./foodstuffs.xlsx
./snafoos.docx

Se non hai familiarità con il terminale, questo è un modo divertente per imparare! :) Il modo più semplice per aprire una finestra di terminale è usare una ricerca spotlight (command-spacebar) e cercare il terminale.

Spero che questo aiuti.

    
risposta data 26.03.2015 - 23:55
fonte

Leggi altre domande sui tag