2008-09-03 11 views
6

Tengo montones de archivos auxiliares generados por código y los documentos LaTeX que deseo no serían sugeridos por SpotLight como potenciales candidatos para la búsqueda. No estoy buscando example.log, estoy buscando example.tex!¿Se puede configurar Spotlight de Mac OS X para que ignore ciertos tipos de archivos?

¿Puede Spotlight configurarse para ignorar, por ejemplo, todos los archivos .log?

(lo sé, lo sé, yo debería usar QuickSilver lugar ...)


@diciu Esa es una respuesta interesante. El problema en mi caso es la siguiente:

averiguar qué importador maneja su tipo de archivo

No estoy seguro de si mi tipo de archivo es manejado por un solo importador? Como todos tienen extensiones extrañas (.aux, .glo, .out, lo que sea), creo que es improbable que exista un importador que sea intentando para indexarlos. Pero debido a que son texto plano, están siendo recogidos como archivos genéricos. (Es cierto, yo no sé mucho sobre la indexación de Spotlight, por lo que podría estar completamente equivocado en esto.)


@diciu nuevo: TextImporterDontImportList suena muy prometedor; Me dirigiré y veré si algo sale de eso.

Como usted dice, parece que todo el sistema de UTI no permite realmente no buscando algo.


@Raynet Hacer los archivos invisibles es una buena idea en realidad, aunque relativamente tedioso para mí Para configurar en el sentido general. En el peor de los casos, podría dar una oportunidad (pero probablemente después de agotar otras opciones como QuickSilver). (Ah, y SetFile requiere las Herramientas de desarrollo, pero supongo que todos aquí las tienen instaladas de todos modos :))

+0

Se puede comprar un programa como el salto o HoudahSpot hacer cosas como esta ninjas con una interfaz de usuario.Es probable que sea mejor dejar los elementos en la base de datos y simplemente usar una mejor herramienta de búsqueda. El sistema Spotlight admite por completo la exclusión de tipos de archivos, por ejemplo. (o podría usar mdfind con cosas como kMDItemContentType! = 'lo que sea que no quiera' –

Respuesta

3

@Will - estas cosas que definen tipos son llamados uniform type identifiers.

El problema es que son una combinación de extensiones (como .txt) y tipos genéricos (es decir, public.plain-text coincide con un archivo txt sin la extensión txt basada únicamente en el contenido) así que no es tan simple como buscar un extensión.

RichText.mdimporter es probablemente el importador que importa su archivo de texto. Esto debe verificarse fácilmente mediante la ejecución de mdimport en el modo de depuración en uno de los archivos que no desea indexados:

 
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. 

El tipo que se ajuste en mi ejemplo se public.plain de texto.

No tengo idea de cómo se escribe realmente una excepción basada en la extensión para una UTI (como public.plain-text excepto cualquier cosa que termine en .log).

Más tarde editar: También he mirado aunque el texto enriquecido mdimporter binario y encontré una cadena prometedora, pero no puedo averiguar si en realidad se está utilizando (como un nombre de preferencia o lo que sea):

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

TextImporterDontImportList 

2

No estoy seguro de cómo hacerlo en un nivel de tipo de archivo, pero puede hacerlo en un nivel de carpeta:

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

Make centro de atención ignorar una carpeta

Si usted no puede cambiar el nombre de la carpeta porque otro software depende de ello es otra técnica para seguir adelante y cambiar el nombre del directorio para terminar en " .noindex ", pero luego crea te un enlace simbólico en la misma ubicación que apunta a la ubicación real utilizando el nombre original.

La mayoría del software se complace en utilizar el enlace simbólico con el nombre original, pero Spotlight ignora los enlaces simbólicos y observa que el nombre "real" termina en * .noindex e ignorará esa ubicación.

Tal vez algo como:

mv originalName OriginalName.noindex ln -s originalName.noindex
originalName

ls -l

lrwxr-xr-x 1 Andy administrador 24 de Ene 9 2008 originalName -> OriginalName.noindex drwxr-xr-x 11 Andy administrador 374 Jul 11 ​​07:03 Original.noindex

2

Así es como podría trabajo.

Nota: esto no es una solución muy buena como una actualización del sistema se sobrescribir los cambios que realizará.

Obtener una lista de todos los importadores

 
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", 

averiguar qué importador maneja su tipo de archivo (ejemplo para el importador de audio):

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




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

Alter plist del importador para eliminar el tipo que quiero ignorar

volver a importar los tipos del importador para que el sistema recoge el cambio:

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

La única opción probable es que no sean indexados por Spotlight ya que por alguna razón no puede hacer búsquedas negativas. Puede buscar archivos con la extensión de archivo specifix, pero no puede buscar los que no coinciden.

Puede intentar que esos archivos sean invisibles para Finder, Spotlight no indexará los archivos invisibles. De comandos para establecer el indicador kIsInvisible de archivos es:

SetFile -a v [nombre de archivo (s)]