Ricerca Spotlight per percorso completo?

3

Quando si esegue una ricerca Spotlight, tramite il Finder o tramite i comandi del terminale, è possibile filtrare i risultati sul percorso completo di un file o almeno sul nome della cartella principale?

Il motivo per cui devo essere in grado di filtrare per il percorso completo è che, sebbene io stia cercando i file reali, voglio solo restituire i file che si trovano nelle cartelle che corrispondono a un particolare modello.

Ad esempio, considera di avere un gruppo di file strutturati in questo modo:

Jobs
    Foo Poster
        Preview.jpg
        Final.psd
    Bar Poster
        Preview.png
        Final.psd
    Foo Banner
        Preview.jpg
        Final.psd

Questo è un esempio un po 'forzato per semplicità, ma considera ora che voglio trovare tutte le immagini di anteprima trovate solo all'interno di cartelle con "Poster" nel nome.

Potrei farlo con find usando qualcosa come:

 find /path/to/Jobs -ipath *poster/preview*

Tuttavia, quello che mi piacerebbe davvero è un modo per farlo usando Spotlight, non solo per la velocità ma anche per le opzioni di ricerca aggiuntive disponibili (etichette, dimensioni dell'immagine ecc.).

È possibile farlo? So che posso limitare le ricerche a una singola cartella, ma questo non è utile in quanto ciò di cui ho veramente bisogno è trovare le cartelle che corrispondono a un modello e quindi cercare all'interno di quelle per i file effettivi.

Ho trovato l'opzione Contenitore documenti nella GUI di ricerca del Finder, ma non sembra funzionare come mi aspetterei; sembra che dovrebbe farmi corrispondere a una cartella genitore di un documento, ma questo non sembra essere il caso.

Supponendo che ciò non sia possibile direttamente con la GUI del Finder (i.e- richiede un comando da terminale Spotlight), preferirei essere in grado di creare una cartella intelligente, se possibile.

    
posta Haravikk 06.03.2018 - 13:22
fonte

1 risposta

2

Questo non è possibile solo con Spotlight. Spotlight non indicizza il percorso del file come una proprietà del file. Pertanto non è possibile utilizzare il percorso come criterio di ricerca.

Puoi usare mdfind alla riga di comando per cercare l'indice di Spotlight. Con il parametro -onlyin puoi puntarlo nella parte superiore della gerarchia delle cartelle. Puoi filtrare i risultati restituiti usando grep.

mdfind -onlyin ~/Downloads/ 'kMDItemContentTypeTree == "public.image"cd' | grep '.*/test.*/.*'

Se hai bisogno di aiuto per creare la query per mdfind, dai un'occhiata a HoudahSpot . Lì puoi impostare i tuoi criteri di ricerca. Quindi vai su Window > Raw Query per trovare la stringa di query di Spotlight che puoi utilizzare con mdfind.

Mentre ti trovi in HoudahSpot puoi anche usare la sua abilità per filtrare i risultati della ricerca. Sopra i risultati della ricerca troverai un campo di ricerca che consente il filtro / esclusione per nome / percorso. Qui puoi usare l'asterisco come carattere jolly.

Full disclosure: sono lo sviluppatore di HoudahSpot.

    
risposta data 21.03.2018 - 12:30
fonte

Leggi altre domande sui tag