Obcování s ďáblem 7: Samá voda, přihořívá, hoří! - 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:

Soutěž

Sponzorem soutěže je:

IDIF

 

Odkud pochází fotografka Anne Erhard?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



Software

Obcování s ďáblem 7: Samá voda, přihořívá, hoří!

6. září 2001, 00.00 | Čím více souborů, čím složitější systém, tím častěji se stává, že něco hledáme a nemůžeme najít.

Čím více souborů, čím složitější systém, tím častěji se stává, že něco hledáme a nemůžeme najít. Pokud je to soubor, jehož jméno (nebo alespoň část jména) známe, je nejjednodušší použít příkaz locate:

174 /tmp> locate NSScan
/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSScanner.h
/System/Library/Frameworks/Foundation.framework/Versions/C/ Resources/English.lproj/Documentation/Reference/ObjC_classic/Classes/NSScanner.html
175 /tmp>

Vzhledem k tomu, že locate hledá soubory všude (ve všech složkách, na všech discích...), často se nám stane, že pro obecnější jméno dostaneme příliš mnoho výsledků — např. příkaz "locate Terminal" vrátí na mém systému skoro 800 řádků. Pro omezení však můžeme s výhodou využít "triky" pro specifikaci jména souboru, jež jsme se naučili u příkazu ls:

178 /tmp> locate "*Terminal[1-4]*"
/Local/Users/ocs/Text/MujMac/Terminal/Terminal_02/HTML/Terminal2.html
/Local/Users/ocs/Text/MujMac/Terminal/Terminal_02/Terminal2.txt
/Local/Users/ocs/Text/MujMac/Terminal/Terminal_03/Terminal3.html
/Local/Users/ocs/Text/MujMac/Terminal/Terminal_03/Terminal3.txt
/Local/Users/ocs/Text/MujMac/Terminal/Terminal_04/Terminal4.html
/Local/Users/ocs/Text/MujMac/Terminal/Terminal_04/Terminal4.txt
179 /tmp> 

Jen je třeba si uvědomit, že vyhledávaným textem není jen vlastní jméno souboru, ale celá jeho cesta — proto jsme museli použít hvězdičku na začátku, jinak by se nenašlo nic. A, samozřejmě, jistě už každý ví, proč jsme použili uvozovky?

Příkaz locate je velice, velice rychlý: používá totiž indexy, které jsou automaticky udržovány na disku. To samozřejmě znamená, že někdy se může stát, že indexy neodpovídají skutečnému obsahu disku; speciálně tomu tak může být u nedávno vytvořených souborů:

187 /tmp> touch blbost
188 /tmp> ls -l blbost
-rw-r—r—  1 ocs  wheel  0 Aug 24 14:04 blbost
189 /tmp> locate blbost
190 /tmp> 

V praxi to obvykle nevadí, protože většinou hledáme "dávno zapomenuté" soubory, které měly dost času se do indexů dostat. Je jen zapotřebí mít toto omezení na paměti v případě, že příkaz locate nenašel, co měl.

Pro hledání souborů, obsahujících požadovaný text, slouží příkaz grep. Prozatím si ukážeme jen jeho nejjednodušší využití (později se k němu ještě vrátíme) — pak je prvním argumentem vyhledávaný text, a za ním následuje seznam souborů, jež se mají prohledat. Chceme-li se např. podívat, kolik a jakých funkcí typu "NSStringToClass" lze najít v hlavičkových souborech Apple, můžeme zkusit

216 /System/Library/Frameworks> grep NSStringFrom *.framework/Headers/*.h
Foundation.framework/Headers/NSGeometry.h:FOUNDATION_EXPORT NSString *NSStringFromPoint(NSPoint aPoint);
Foundation.framework/Headers/NSGeometry.h:FOUNDATION_EXPORT NSString *NSStringFromSize(NSSize aSize);
Foundation.framework/Headers/NSGeometry.h:FOUNDATION_EXPORT NSString *NSStringFromRect(NSRect aRect);
Foundation.framework/Headers/NSHashTable.h:FOUNDATION_EXPORT NSString *NSStringFromHashTable(NSHashTable *table);
Foundation.framework/Headers/NSMapTable.h:FOUNDATION_EXPORT NSString *NSStringFromMapTable(NSMapTable *table);
Foundation.framework/Headers/NSObjCRuntime.h:FOUNDATION_EXPORT NSString *NSStringFromSelector(SEL aSelector);
Foundation.framework/Headers/NSObjCRuntime.h:FOUNDATION_EXPORT NSString *NSStringFromClass(Class aClass);
Foundation.framework/Headers/NSRange.h:FOUNDATION_EXPORT NSString *NSStringFromRange(NSRange range);
217 /System/Library/Frameworks>

Mimochodem, pro vyhledávání řetězce bez ohledu na malá a velká písmena slouží přepínač -i ("case Insensitive").

Na co se můžeme těšit?

Jak jsme si slíbili minule, příště se pustíme do práce s programy: vysvětlíme si, jak z shellu program spustit, jaké možnosti a triky máme k dispozici, a podobně.

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

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Tipy a Triky  

 » Rubriky  » Začínáme s  

 » Rubriky  » Software  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Pochvala

Autor: Michal Muž

Založeno: 07.09.2001, 14:22
Odpovědí: 0

Rad bych vyjadril, ze takoveto clanky jsou super, clovek je hlta jednim dechem, neni to jen sucharna (tzv.stroha informace), ale predevsim velice ume interpretovana informace.
Dik.

Odpovědět na příspěvek

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

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

Uživatelské jméno:

Heslo: