Come localizzare un file in Spotlight usando la cartella e il nome del file?

3

Spesso desidero navigare verso un file o una cartella che non ha un nome univoco. Invece, la cartella principale in combinazione con il nome del file o foldern lo rende unico. Ecco alcuni esempi:

  • Voglio aprire readme.txt nella cartella denominata ABC anziché readme.txt nella cartella denominata CDE o FGH .
  • Ogni anno insegno su un argomento in cui le cartelle sono organizzate subjectname/2011 , subjectname/2012 , ecc. Voglio essere in grado di cercare subjectname 2012 perché 2012 non è univoco.

Quando inserisco una parte del percorso e il nome del file in Spotlight, il file non viene trovato. Spotlight non sembra trattare le informazioni sul percorso come rilevanti per la ricerca.

  • Qual è un modo rapido per navigare in un file utilizzando Spotlight quando il suo nome non è univoco ma conosci una parola o una parola parziale che appare nel suo percorso?
  • In alternativa, esiste un'altra strategia per individuare rapidamente un file o una cartella in base al nome e a una parola nel percorso del file o della cartella?

Aggiornamento, ho letto che Spotlight tratta il percorso in modo speciale . Non può essere utilizzato nella costruzione di ricerche.

kMDItemPath
Complete path to the file. This value of this attribute can be retrieved, 
but can't be used in a query or to sort search results. This attribute can’t 
be used as a member of the valueListAttrs array parameter for MDQueryCreate 
or MDQueryCreateSubset.
Value Type:      CFString
Framework:       CoreServices/CoreServices.h
Header:      MDItem.h
Availability:    Available in OS X v10.4 and later.
    
posta Jeromy Anglim 08.11.2012 - 02:46
fonte

3 risposte

2

Se sei a tuo agio nell'aprire il terminale, puoi eseguire il comando

locate ABC/readme.txt

e ti darà il percorso completo del file per tutti i file sul tuo computer che sono denominati readme.txt in una cartella denominata ABC.

Mentre sei lì, puoi copiare e incollare il percorso come argomento al comando open e lo aprirà per te.

Facendo un ulteriore passo avanti puoi usare l'output di locate come argomenti per open con xargs

locate ABC/readme.txt | xargs open

Aprirà tutti i file che hanno ABC / readme.txt sulla tua macchina come se avessi fatto doppio clic su di essi.

    
risposta data 13.11.2012 - 05:57
fonte
1

Grazie a @ nove9 per aver indicato il comando locate come opzione. Ecco alcune osservazioni aggiuntive.

Corrispondenza parziale e più termini di ricerca

Spesso ho cartelle in cui posso ricordare solo parzialmente nomi di file e cartelle. E le cartelle potrebbero non essere necessariamente nella cartella padre immediata (ad esempio, potrebbe essere la cartella madre della cartella principale). Un modo per eseguire una ricerca di corrispondenza parziale di tipo booleano consiste nel combinare i comandi grep convogliati. Ad esempio:

locate AB | grep readme

ridurrebbe ( | ) tutti i percorsi che corrispondono a AB in grep . Anche i percorsi rimanenti corrispondono a readme . Pertanto, questo corrisponderebbe a ABC/foo/readme.txt , ABC/foo/readme.md e ABC/readme.txt .

Ricerca senza distinzione tra maiuscole e minuscole

La ricerca Spotlight sembra insensibile alle maiuscole e minuscole, che generalmente sembra conveniente. Per lo stesso comportamento con locate e grep usa il -i flag.

locate -i AB | grep -i readme
I

comandi grep possono essere applicati ripetutamente per filtrare ulteriormente i risultati.

Selezione di un percorso da un elenco

In alcuni casi, anche dopo diversi greps, trovo che posso ancora essere lasciato con una manciata di fiammiferi e voglio solo selezionarne uno dalla lista. Esistono vari modi per selezionare una singola riga per numero. Ecco un paio di opzioni per selezionare ad esempio la riga 4 di alcuni elenchi di percorsi da un locate search

locate AB | grep readme | awk 'NR==4'

Apertura di un percorso selezionato

Come note @nineths una volta ottenuto un singolo file, l'output può essere aperto con un'applicazione predefinita:

locate foo | xargs open

o con un programma specificato sul percorso come Vim

locate foo | xargs mvim

xargs non funziona, almeno per impostazione predefinita, se il percorso include uno spazio. Un'altra opzione è quella di inviare il percorso negli appunti e incollarlo da qualche parte (ad esempio, in una ricerca Alfred o in una finestra di dialogo Vai alla cartella).

locate foo | pbcopy

Alternativa alla selezione da riga di comando e all'apertura

Presumibilmente ci sono diverse alternative all'utilizzo della riga di comando per selezionare e aprire un percorso dall'elenco dei percorsi restituiti.

  • In iTerm2 tenendo premuto il tasto comando e facendo clic su un URL o su un percorso file / cartella si aprirà l'URL o il file nell'applicazione predefinita.

Personalizzazione di locate

Questo tutorial di Geek Stuff illustra varie personalizzazioni al comando locate (ad es. , filtrando determinate directory e tipi di file).

Potenziale usare mdfind invece

In generale, tutti gli esempi che utilizzano locate sopra potrebbero essere sostituiti con mdfind . locate generalmente fa riferimento a file di sistema aggiuntivi mentre mdfind accede a quei file indicizzati da Spotlight. mdfind è case insensitive di default, che generalmente trovo conveniente. mdfind ha anche opzioni di ricerca aggiuntive, ad es. puoi aggiungere kind:fol per le cartelle. La differenza principale è che mdfind cerca solo il nome del file. Pertanto, se le informazioni sul percorso vengono utilizzate per limitare la ricerca, è necessario che vengano visualizzate nei filtri grep di pipe successivi.

Ad esempio, se volessi trovare una cartella denominata 2012 dove subjectname appare nel percorso, il seguente potrebbe funzionare

mdfind name:2012 kind:fol | grep subjectname

Tieni presente che name: sembrava essere richiesto perché il testo era costituito da tutti i numeri.

Pensieri di riepilogo

  • Velocità : il comando locate viene eseguito più rapidamente del comando find ma a una velocità simile a mdfind .
  • Possibilità di filtrare : se disponi di informazioni che corrispondono parzialmente al nome del file o desideri utilizzare strumenti di ricerca aggiuntivi mdfind sembra migliore (supponendo che il file sia indicizzato da Spotlight).

In generale tutti questi approcci sembrano un po 'complicati e hanno una buona dose di inutili spese sintattiche.

    
risposta data 13.11.2012 - 08:56
fonte
1

Potresti controllare Findspot . Findspot supporta la ricerca completa dei percorsi in modo da poter includere il nome e il nome file della cartella nella query.

Ecco uno screenshot di Findspot che utilizza il tuo esempio:

    
risposta data 11.11.2015 - 02:52
fonte

Leggi altre domande sui tag