È possibile configurare Spotlight di Mac OS X per ignorare determinati tipi di file?[Chiuso]

StackOverflow https://stackoverflow.com/questions/41279

  •  09-06-2019
  •  | 
  •  

Domanda

Ho un sacco di file ausiliari generati da codice e documenti LaTeX che desidero ardentemente non lo farebbe essere suggeriti da SpotLight come potenziali candidati alla ricerca.Non sto cercando example.log, Sto cercando example.tex!

Quindi Spotlight può essere configurato per ignorare, ad esempio, tutto .log File?

(Lo so, lo so;Dovrei semplicemente usare QuickSilver invece...)


@diciu Questa è una risposta interessante.Il problema nel mio caso è questo:

Scopri quale importatore gestisce il tuo tipo di file

Non sono sicuro che il mio tipo di file sia gestito da un singolo importatore?Dato che hanno tutti estensioni strane (.aux, .glo, .out, qualunque cosa) penso sia improbabile che ci sia un importatore che lo sia provando per indicizzarli.Ma poiché sono testo semplice, vengono raccolti come file generici.(Certo, non so molto sull'indicizzazione di Spotlight, quindi potrei sbagliarmi completamente su questo.)


@diciu Ancora: TextImporterDontImportList sembra molto promettente;Vado a vedere se ne viene fuori qualcosa.

Come dici tu, sembra che l'intero sistema UTI non lo consenta realmente non cercando qualcosa.


@Raynet Rendere i file invisibili è una buona idea in realtà, anche se per me è relativamente noioso da configurare in senso generale.Nel peggiore dei casi, potrei provarci (ma probabilmente dopo aver esaurito altre opzioni come QuickSilver).(Oh, e SetFile richiede gli Strumenti per sviluppatori, ma immagino che tutti qui li abbiano comunque installati :) )

È stato utile?

Soluzione

@Will: vengono chiamate queste cose che definiscono i tipi identificatori di tipo uniforme.

Il problema è che sono una combinazione di estensioni (come .txt) e tipi generici (ad es.public.plain-text corrisponde a un file txt senza l'estensione txt basata esclusivamente sul contenuto), quindi non è semplice come cercare un'estensione.

RichText.mdimporter lo è probabilmente l'importatore che importa il tuo file di testo.Questo dovrebbe essere facilmente verificato eseguendo mdimport in modalità debug su uno dei file che non desideri indicizzare:

cristi:~ diciu$ echo "All work and no play makes Jack a dull boy" > ~/input.txt
cristi:~ diciu$ mdimport -d 4 -n ~/input.txt 2>&1 | grep Imported
    kMD2008-09-03 12:05:06.342 mdimport[1230:10b] Imported '/Users/diciu/input.txt' of type 'public.plain-text' with plugIn /System/Library/Spotlight/RichText.mdimporter.

Il tipo che corrisponde nel mio esempio è public.plain-text.

Non ho idea di come si scriva effettivamente un'eccezione basata sull'estensione per un UTI (come public.plain-text tranne qualsiasi cosa che termina con .log).

Modifica successiva:Ho anche esaminato il file binario mdimporter di RichText e ho trovato una stringa promettente ma non riesco a capire se viene effettivamente utilizzata (come nome di preferenza o altro):

cristi:FoodBrowser diciu$ strings /System/Library/Spotlight/RichText.mdimporter/Contents/MacOS/RichText |grep Text

TextImporterDontImportList

Altri suggerimenti

Non sei sicuro di come farlo a livello di tipo di file, ma puoi farlo a livello di cartella:

Fonte: http://lists.apple.com/archives/spotlight-dev/2008/Jul/msg00007.html

Fai in modo che Spotlight ignori una cartella

Se non puoi assolutamente rinominare la cartella perché altri software dipendono da essa, un'altra tecnica è andare avanti e rinominare la directory in modo che termini con ".noindex", ma poi creare un collegamento simbolico nella stessa posizione che punti alla posizione reale utilizzando l'originale nome.

La maggior parte dei software è felice di utilizzare il collegamento simbolico con il nome originale, ma Spotlight ignora i collegamenti simbolici e noterà che il nome "reale" termina con *.noindex e ignorerà quella posizione.

Forse qualcosa del tipo:

MV originale originalname.noindex ln -s originalname.noindex
Nome originale

ls -l

lrwxr-xr-x 1 Andy admin 24 gennaio 2008 originale name-> originalename.noindex drwxr-xr-x 11 Andy Admin 374 luglio 11 07:03 originale.noindex

Ecco come Potrebbe lavoro.

Nota:questa non è una buona soluzione come aggiornamento del sistema Volere sovrascrivi le modifiche che eseguirai.

Ottieni un elenco di tutti gli importatori

cristi:~ diciu$ mdimport -L
2008-09-03 10:42:27.144 mdimport[727:10b] Paths: id(501) (
    "/System/Library/Spotlight/Audio.mdimporter",
    "/System/Library/Spotlight/Chat.mdimporter",
    "/Developer/Applications/Xcode.app/Contents/Library/Spotlight/SourceCode.mdimporter",

Scopri quale importatore gestisce il tuo tipo di file (esempio per l'importatore audio):

cristi:~ diciu$ cat /System/Library/Spotlight/Audio.mdimporter/Contents/Info.plist 




[..]
            CFBundleTypeRole
            MDImporter
            LSItemContentTypes
            
                public.mp3
                public.aifc-audio
                public.aiff-audio

Modifica il plist dell'importatore per eliminare il tipo che desideri ignorare.

Reimportare i tipi dell'importatore in modo che il sistema rilevi la modifica:

mdimport -r /System/Library/Spotlight/Chat.mdimporter

Probabilmente l'unica opzione è non indicizzarli tramite Spotlight poiché per qualche motivo non è possibile eseguire ricerche negative.Puoi cercare file con un'estensione di file specifica, ma non puoi non cercare quelli che non corrispondono.

Potresti provare a rendere quei file invisibili per Finder, Spotlight non indicizzerà i file invisibili.Il comando per impostare il flag kIsInvisible sui file è:

SetFile -a v [nome/i file]

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top