Obcování s ďáblem 3 - Práce se soubory - 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

 

Kde se narodil známý fotograf František Drtikol?

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

Seriály

Více seriálů



Informace

Obcování s ďáblem 3 - Práce se soubory

9. srpna 2001, 00.00 | Minule jsme se jen tak "z rychlíku" seznámili s příkazy ls a cd, které nabízejí (velmi zhruba) podobné služby, jako okno Finderu: zobrazují složky a soubory. Dnes se na práci se soubory podíváme blíže.

Minule jsme se jen tak "z rychlíku" seznámili s příkazy ls a cd, které nabízejí (velmi zhruba) podobné služby, jako okno Finderu: zobrazují složky a soubory. Dnes se na práci se soubory podíváme blíž.

Specifikace souborů

Připomeňme příkaz ls - ten zobrazil seznam souborů v aktivní složce. Chceme-li se ale podívat "jinam", nemusíme tam přecházet příkazem cd; namísto toho můžeme příkazu ls jako argument zadat jméno složky jejíž obsah nás zajímá. Můžeme také přímo určit soubory, jež chceme vypsat. Dnes si ukážeme finty, které na to nabízí příkazový řádek.

Cesta

Pojem cesta používáme pro seznam složek, jež "vedou" postupně od kořene až ke složce, o kterou se právě zajímáme - je to tentýž seznam, který ukáže titulek okna Finderu, jestliže jej stiskneme s přidržením klávesy Command.

V příkazovém řádku můžeme cesty zapisovat přímo; pro oddělování jednotlivých jmen se používá lomítko (dvojtečka, již pro podobný účel používaly staré Mac OSy, může být součástí jména složky nebo souboru). Chceme-li se tedy podívat např. do složky, obsahující standardní systémová písma, můžeme použít příkaz

ls /System/Library/Fonts

Pokud cesta nezačíná lomítkem, shell použije jako východisko běžnou složku (vzpomeňte si na příkaz pwd z minulého dílu). Jestliže je tedy právě aktivní náš domovský adresář, můžeme si vypsat všechny své soukromé aplikace příkazem

ls Applications

V cestě můžeme kdykoli použít také dvě tečky, ve stejném významu, v jakém jsme si je uvedli u příkazu cd - pro nadřízenou složku. Pokud tedy např. jsme v naší domovské složce, a víme, že existuje také uživatel "tom" (který nám nezakázal přístup ke svým souborům), můžeme si vypsat jeho soukromé aplikace příkazem

ls ../tom/Applications

Poslední specialita, kterou si ukážeme v tomto odstavci, je tilda ('~'): shell ji interpretuje jako "odkaz na uživatele". Jestliže za tildou je jméno, shell vyhledá domovskou složku uživatele s daným jménem; stojí-li tilda sama, reprezentuje naši domovskou složku. Předminulý a minulý příklad jsme tedy mohli napsat také takto:

ls ~/Applications ls ~tom/Applications

přičemž tyto varianty fungují nezávisle na tom, která složka je právě aktuální.

Je třeba si dát pozor na některé speciální znaky; typickým případem je mezera (patří sem ale také vykřičník, hvězdička, závorky a další - seznámíme se s nimi v budoucích dílech našeho seriálu, kde si řekneme i k čemu slouží):

ls Moje soubory

Chceme-li vypsat obsah složky "Moje soubory" takto, dočkáme se nepříjemného překvapení. Shell totiž některé znaky interpretuje speciálním způsobem; mají-li proto být brány jako součást normálního jména souboru, musíme to shellu nějak říci. Nejjednodušší je zapsat před takový znak obrácené lomítko, nebo celou cestu uzavřít do uvozovek či apostrofů:

ls Moje\ soubory ls "Moje soubory" ls 'Moje soubory'

(Každá z uvedených tří možností nabízí malinko odlišné služby; na naší úrovni se tím však zatím zabývat nebudeme, uvádím to jen pro vysvětlení, proč vůbec jsou možnosti tři.)

Doplňování jmen a vazba na GUI

Pro zadávání jmen složek (i souborů) máme k dispozici dvě velmi pohodlné doplňkové služby.

První z nich je doplňování jmen: napíšeme-li několik prvních písmen jména složky nebo souboru a stiskneme klávesu Tab, shell (tcsh nebo zsh, sh to neumí) automaticky doplní celé jméno. Pokud existuje složek či souborů se stejným začátkem více, může shell všechny zobrazit, nebo postupně cyklicky procházet všechny alternativy - to záleží na shellu a na jeho nastavení (nastavování shellů je poměrně komplikované, a proto si jej necháme na později - prozatím tuto službu používejte "jak je").

Druhá služba je ještě jednodušší: pokud myší do okna aplikace Terminal hodíme soubor nebo složku, odpovídající jméno se zapíše do příkazového řádku. Chceme-li tedy zobrazit v shellu obsah některé složky, jejíž ikonu vidíme třeba v okně Finderu, napíšeme "ls " a ikonu "hodíme do shellu".

Historie

Shelly (opět jen tcsh a zsh) nabízeji velmi pohodlné služby pro vyvolání "před chvílí použitých" příkazů; těmto službám se říká "historie". Existují dvě skupiny služeb; jedna, o něco luxusnější, ale méně pohodlná využívá právě speciálního znaku '!'; prozatím si ji vysvětlovat nebudeme. Druhá je mnohem jednodušší: prostě šipkou nahoru nalistujeme požadovaný příkaz (a samozřejmě jej můžeme měnit).

Výběr souborů

Pokud složka obsahuje souborů příliš mnoho - jako příklad budeme používat složku /etc, která obsahuje dlouhou řadu systémových souborů - můžeme chtít zobrazit jen některé z nich. To je jednoduché - stačí, zadáme-li specifikaci souboru. V nejjednodušším případě jde prostě o jméno požadovaného souboru - můžeme si tak ověřit, zda daný soubor existuje nebo ne:

cd /etc
ls nonsense
ls: nonsense: No such file or directory
ls rc.boot
rc.boot

Chceme-li všechny soubory, jejichž jméno obsahuje nějakou fixní část, použijeme hvězdičku pro 'proměnné':

ls *.conf
bootstrap.conf inetd.conf krb.conf man.conf syslog.conf gdb.conf* kern_loader.conf krb5.conf resolv.conf

(Stručná poznámka pro případné uživatele té parodie na příkazový řádek, která se vyskytuje v MS DOSu: samozřejmě, že hvězdiček může být libovolně mnoho, a že fixní text může být jak před nimi, tak i za nimi.)

Pokud chceme omezit 'proměnnou' část, máme k dispozici navíc hranaté závorky - v nich uvedeme seznam přípustných znaků. Zajímají-li nás tedy jen ty soubory *.conf, jež začínají písmeny 'a', 'b' a 'k', můžeme napsat

ls [abk]*.conf
bootstrap.conf kern_loader.conf krb.conf krb5.conf

S využitím pomlčky můžeme určit také interval, písmena od-do:

ls [a-m]*.conf
bootstrap.conf inetd.conf krb.conf man.conf gdb.conf* kern_loader.conf krb5.conf

Konečně, pokud by nám snad lépe vyhovovalo určit, které znaky se nesmějí na daném místě vyskytnout, použijeme jako první znak za levou hranatou závorkou "stříšku":

ls [^a-m]*.conf
resolv.conf syslog.conf

Samozřejmě, že všechny tyto "finty" můžeme stejně dobře používat v celé cestě, nejen ve jméně souboru. Chceme-li např. vypsat všechny soubory, jež jsou uloženy uvnitř kterékoli složky, jež sama leží v aktuální složce (nyní /etc), a jejichž jména obsahují písmeno 'o', můžeme použít tento příkaz:

ls */*e*
httpd/httpd.conf httpd/httpd.conf.bak httpd/httpd.conf.default mail/local-host-names

Tím pro dnešek skončíme, protože článek už začíná být nepříjemně dlouhý. Příště začneme tím, že si ukážeme jak - a proč - lze přesně ty samé "finty" používat pro libovolný příkaz nebo program, se kterým v příkazové řádce pracujeme.

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  

 

 

 

 

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

Uživatelské jméno:

Heslo: