Mac OS X Tiger - Spotlight pod drobnohledem (4) - skryté možnosti Terminalu - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Software

Mac OS X Tiger - Spotlight pod drobnohledem (4) - skryté možnosti Terminalu

20. května 2005, 00.00 | V dnešním díle se podíváme na to, jak Spotlight využít v Terminalu a jak jej mít opravdu maximálně pod kontrolou. Ukážeme si, jak indexovat síťové disky, iPod nebo jak se dozvědět, jaké informace Spotlight o konkrétním souboru spravuje.

V dnešním díle se podíváme na to, jak Spotlight využít v Terminalu a jak jej mít opravdu maximálně pod kontrolou. Ukážeme si, jak indexovat síťové disky, iPod nebo jak se dozvědět, jaké informace Spotlight o konkrétním souboru spravuje.

Pokud chcete mít nad Spotlightem větší kontrolu, budete muset spustit Terminal a využít následující tři příkazy:

mdls - vypíše seznam metadat, která jsou asociována s daným dokumentem
mdfind - vyhledávání pomocí Spotlightu s řadou možností
mdutil - utilita pro správu indexů Spotlightu
mdimport - slouží pro import dat ze souborových metadat

Občas se vám může stát, že budete chtít svůj pevný disk přeindexovat, ale jak Spotlight donutit, aby něco takového provedl? Nejjednodušší možností je v předvolbách Spotlightu v záložce Privacy přidat celý disk, který chcete znovu "proskenovat" a následně jej z tohoto panelu odstranit. Spotlight se po chvíli pustí do práce a obsah disku či logického oddílu si celý znovu zaindexuje.

Další možností je z kořenového adresáře disku (nebo logického oddílu) odstranit skrytou složku '.Spotlight-V100', která obsahuje index daného disku. Tím, že tuto složku odstraníte, odpojíte disk a následně jej zase připojíte, dojde k tomu, že Spotlight si tuto složku vytvoří znovu se zcela novým indexem. Pro odstranění budete potřebovat administrátorská práva a určitou znalost Terminalu.

A aby těch možností nebylo málo, je tu ještě zmiňovaný mdutil, který svou práci splní stejně dobře:

sudo mdutil -E /

Tímto příkazem dojde k vymazání indexu na startovacím disku a k vytvoření nového indexu - symbol '/' označuje kořenový adresář, ale je možné jej nahradit třeba externím diskem - např.: '/Volumes/Firewire_disk'

sudo mdutil -s /

Tímto příkazem zjistíte, zda je indexovaní na daném disku povoleno, či nikoliv. Stejně jako v předchozím případě lze '/' nahradit cestou k disku/logickému oddílu.

sudo mdutil -i on /

zapne indexování na daném disku

sudo mdutil -i off /

vypne indexování na daném disku

Pokud chcete nový index jen v určitém místě (konkrétní složce), slouží k tomu příkaz mdimport.

mdimport ~/Documents

Tímto příkazem dojde k indexování složky Dokumenty v domovském adresáři.

mdimport -r /Library/Spotlight/AppleWorks.mdimporter

Tímto příkaz zindexujete všechny AppleWorksové dokumenty v celém počítači.

mdimport -L

Ukáže seznam všech podporovaných importérů metadat.

sudo mdimport -f /Volumes/your_iPod/iPod_control/

Pokud 'your_iPod' nahradíte názvem svého iPodu, tak jej Spotlight proskenuje a nalezené písničky (jež jsou ve skryté složce) přidá do své databáze a vy pak můžete obsah iPodu prohledávat a písně z něj lehce kopírovat na pevný disk. Stejnou službu vám udělá i Spodlight.

mdutil /Volumes/ldm -i on

Jestliže 'lmd' nahradíte názvem připojeného síťového disku, zapnete na něm indexování a během chvilky jej Spotlight začne prohledávat a ukládat si získané informace. Po skončení indexace se síťovým diskem můžete pracovat jako s připojeným FireWire diskem - to znamená, že Spotlight na něm bude prohledávat i obsah souborů.

Pro kontrolu ještě můžete dát:

mdutil /Volumes/ldm -s

a měli byste získat odpověď:

 /Volumes/ldm/:
   Status: Indexing Enabled

Jen je potřeba upozornit, že v případě síťových disků může docházet k nepřesným výsledkům vyhledáváni. To je způsobeno tím, že s obsahem takového disku mohou pracovat různí uživatelé z různých operačních systému a index nemusí být vždy aktuální! Tento postup pravděpodobně nefunguje s připojením přes SAMBU, ale pouze s AFP.


Co Spotlight spravuje?

Pokud vás zajímá, jaká data Spotlight o konkrétním souboru spravuje, respektive jaká metadata, budete potřebovat použít příkaz mdls.

titanium:~/desktop mario$ mdls Dashboard_Tutorial.pdf

Dashboard_Tutorial.pdf ------------- kMDItemAttributeChangeDate = 2005-05-06 18:45:07 +0200 kMDItemAuthors = ("Apple Computer, Inc.") kMDItemContentCreationDate = 2005-05-06 16:43:05 +0200 kMDItemContentModificationDate = 2005-05-06 16:43:05 +0200 kMDItemContentType = "com.adobe.pdf" kMDItemContentTypeTree = ( "com.adobe.pdf", "public.data", "public.item", "public.composite-content", "public.content" ) kMDItemCreator = "Unknown" kMDItemDisplayName = "Dashboard_Tutorial.pdf" kMDItemEncodingApplications = ("XEP 4.2 build 20050228") kMDItemFSContentChangeDate = 2005-05-06 16:43:05 +0200 kMDItemFSCreationDate = 2005-05-06 16:43:05 +0200 kMDItemFSCreatorCode = 0 kMDItemFSFinderFlags = 0 kMDItemFSInvisible = 0 kMDItemFSLabel = 0 kMDItemFSName = "Dashboard_Tutorial.pdf" kMDItemFSNodeCount = 0 kMDItemFSOwnerGroupID = 501 kMDItemFSOwnerUserID = 501 kMDItemFSSize = 1940636 kMDItemFSTypeCode = 0 kMDItemID = 944985 kMDItemKind = "PDF Document" kMDItemLastUsedDate = 2005-05-06 18:45:07 +0200 kMDItemNumberOfPages = 74 kMDItemPageHeight = 792 kMDItemPageWidth = 612 kMDItemSecurityMethod = "None" kMDItemTitle = "Dashboard Programming Guide" kMDItemUsedDates = (2005-05-06 16:43:05 +0200, 2005-05-06 02:00:00 +0200) kMDItemVersion = "1.4"

Výsledkem je seznam všech metadat, která o daném souboru Spotlight ve své databázi má (a ta se liší dle druhu souboru).

Jak je vidět, u obrázku (.jpg) získáme zcela jiný výsledek než u výše popsaného PDF:

kMDItemAcquisitionMake         = "CASIO COMPUTER CO.,LTD "
kMDItemAcquisitionModel        = "EX-Z40 "
kMDItemAttributeChangeDate     = 2005-05-17 18:22:42 +0200
kMDItemBitsPerSample           = 32
kMDItemColorSpace              = "RGB"
kMDItemContentCreationDate     = 2005-05-14 17:10:56 +0200
kMDItemContentModificationDate = 2005-05-14 17:10:56 +0200
kMDItemContentType             = "public.jpeg"
kMDItemContentTypeTree         = ("public.jpeg", "public.image", "public.data", "public.item", "public.content")
kMDItemDisplayName             = "CIMG2896.JPG"
kMDItemEXIFVersion             = "2.2.1"
kMDItemExposureMode            = 0
kMDItemExposureTimeSeconds     = 0.01
kMDItemFlashOnOff              = 1
kMDItemFocalLength             = 5.8
kMDItemFSContentChangeDate     = 2005-05-14 17:10:56 +0200
kMDItemFSCreationDate          = 2005-05-14 17:10:56 +0200
kMDItemFSCreatorCode           = 0
kMDItemFSFinderFlags           = 1024
kMDItemFSInvisible             = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "CIMG2896.JPG"
kMDItemFSNodeCount             = 0
kMDItemFSOwnerGroupID          = 501
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 1906280
kMDItemFSTypeCode              = 0
kMDItemHasAlphaChannel         = 0
kMDItemID                      = 1106891
kMDItemKind                    = "JPEG Image"
kMDItemLastUsedDate            = 2005-05-17 18:22:36 +0200
kMDItemOrientation             = 0
kMDItemPixelHeight             = 1728
kMDItemPixelWidth              = 2304
kMDItemRedEyeOnOff             = 0
kMDItemResolutionHeightDPI     = 72
kMDItemResolutionWidthDPI      = 72
kMDItemUsedDates               = (2005-05-17 18:22:36 +0200)
kMDItemWhiteBalance            = 0

V levé části jsou vidět jednotlivé atributy a vpravo jejich hodnoty. Tyto atributy lze využít a zadat je i při vyhledávání - a to jak přímo ve Spotlightu (přes Jablíčko-F, zvolit other... a vybrat je v poněkud "lidštější podobě"), nebo přímo v Terminalu za pomoci mdfind.


Ukázka takového vyhledávání:

$ mdfind -onlyin ~ "(kMDItemFSName =='*.htm*') && (kMDItemFSName !='*Favorites*')"
Nalezne všechny soubory v domovské složce obsahující v názvu '.htm' a zároveň nemající v názvu 'Favorites'.

$ mdfind -onlyin ~/Desktop/Test "kMDItemContentTypeTree = 'public.text'" 
Nalezne všechny textové dokumenty ve složce Test na ploše.

$ mdfind "kMDItemFSLabel != '6'"
Nalezne všechny soubory, které mají visačku číslo 6 (jedna z barev).

Zde je patrné, že pro uživatele Terminalu přináší Spotlight velmi silnou zbraň, která dokáže velice urychlit a zjednodušit práci. Bez problému lze používat i logické operátory (NOT !=, AND &&, OR ||, větší > a podobně).

Tímto dílem ukončíme seriál věnovaný Spotlightu a jeho integraci do Mac OS X. Na závěr jsme nakousli téma Raw Queries, které je již hodně specializované a více se o něm můžete dozvědět na vývojářských stránkách společnosti Apple. Pokud bude z vaší strany zájem, můžeme seriál rozšířit a blíže se podívat i na tuto oblast práce se Spotlightem.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: