Spotlight de Mac OS X peut-il être configuré pour ignorer certains types de fichiers ?[fermé]

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

  •  09-06-2019
  •  | 
  •  

Question

J'ai des tas de fichiers auxiliaires générés par du code et des documents LaTeX que je souhaite vivement ne serait-ce pas être suggérés par Spotlight comme candidats potentiels à la recherche.je ne cherche pas example.log, Je recherche example.tex!

Alors Spotlight peut-il être configuré pour ignorer, disons, tout .log des dossiers?

(Je sais je sais;Je devrais simplement utiliser QuickSilver à la place…)


@ici C'est une réponse intéressante.Le problème dans mon cas est le suivant :

Déterminez quel importateur gère votre type de fichier

Je ne sais pas si mon type de fichier est traité par un seul importateur ?Puisqu'ils ont tous des extensions bizarres (.aux, .glo, .out, peu importe), je pense qu'il est improbable qu'il y ait un importateur qui soit en essayant pour les indexer.Mais comme il s’agit de texte brut, ils sont récupérés en tant que fichiers génériques.(Certes, je ne connais pas grand-chose à l'indexation de Spotlight, donc je peux me tromper complètement à ce sujet.)


@ici encore: TextImporterDontImportList cela semble très prometteur ;Je vais y aller et voir si quelque chose en résulte.

Comme vous le dites, il semble que l'ensemble du système UTI ne permette pas vraiment pas chercher quelque chose.


@Raynet Rendre les fichiers invisibles est en fait une bonne idée, quoique relativement fastidieuse à mettre en place au sens général.Dans le pire des cas, je pourrais tenter le coup (mais probablement après avoir épuisé d'autres options telles que QuickSilver).(Oh, et SetFile nécessite les outils de développement, mais je suppose que tout le monde ici les a installés de toute façon :) )

Était-ce utile?

La solution

@Will - ces éléments qui définissent les types sont appelés identifiants de type uniformes.

Le problème est qu'il s'agit d'une combinaison d'extensions (comme .txt) et de types génériques (c'est-à-direpublic.plain-text correspond à un fichier txt sans l'extension txt en fonction uniquement du contenu), ce n'est donc pas aussi simple que de rechercher une extension.

RichText.mdimporter est probablement l'importateur qui importe votre fichier texte.Cela devrait être facilement vérifié en exécutant mdimport en mode débogage sur l'un des fichiers que vous ne souhaitez pas indexer :

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.

Le type qui correspond dans mon exemple est public.plain-text.

Je n'ai aucune idée de la façon dont vous écrivez réellement une exception basée sur une extension pour un UTI (comme public.plain-text sauf tout ce qui se termine par .log).

Modification ultérieure :J'ai également regardé le binaire RichText mdimporter et trouvé une chaîne prometteuse, mais je n'arrive pas à savoir si elle est réellement utilisée (comme nom de préférence ou autre) :

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

TextImporterDontImportList

Autres conseils

Je ne sais pas comment le faire au niveau du type de fichier, mais vous pouvez le faire au niveau du dossier :

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

Faire en sorte que Spotlight ignore un dossier

Si vous ne pouvez absolument pas renommer le dossier parce que d'autres logiciels en dépendent, une autre technique consiste à renommer le répertoire pour qu'il se termine par ".noindex", puis à créer un lien symbolique au même emplacement pointant vers l'emplacement réel en utilisant l'original. nom.

La plupart des logiciels acceptent d'utiliser le lien symbolique avec le nom d'origine, mais Spotlight ignore les liens symboliques et notera que le "vrai" nom se termine par *.noindex et ignorera cet emplacement.

Peut-être quelque chose comme :

Mv originalName originalName.nOindex ln -s originalName.nOindex
Nom d'origine

ls-l

LRWXR-XR-X 1 ADY Admin 24 janvier 9 2008 OriginalName -> OriginalName.NOindex DRWXR-XR-X 11 Andy Admin 374 Jul 11 ​​07:03 Original.Noindex

Voici comment ça se passe pourrait travail.

Note:ce n'est pas une très bonne solution comme mise à jour du système volonté écraser les modifications que vous effectuerez.

Obtenez une liste de tous les importateurs

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

Déterminez quel importateur gère votre type de fichier (exemple pour l'importateur audio) :

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




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

Modifiez le plist de l'importateur pour supprimer le type que vous souhaitez ignorer.

Réimportez les types de l'importateur pour que le système récupère la modification :

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

La seule option est probablement de ne pas les indexer par Spotlight, car pour une raison quelconque, vous ne pouvez pas effectuer de recherches négatives.Vous pouvez rechercher des fichiers avec une extension de fichier spécifique, mais vous ne pouvez pas ne pas rechercher ceux qui ne correspondent pas.

Vous pouvez essayer de rendre ces fichiers invisibles pour le Finder, Spotlight n'indexera pas les fichiers invisibles.La commande pour définir l’indicateur kIsInvisible sur les fichiers est :

SetFile -a v [nom(s) de fichier]

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top