Kdo někdy dělal HTML, tak se asi dostal k termínům "absolutní a relativní cesty". V dnešním díle si ukážeme, jak se tyto používají v DOSu a jaké problémy jsou s tím spojeny. Na závěr bude rozšířený příkaz dir
Absolutní a relativní cesty
V minulé lekci jsme se naučili pár užitečných věcí.
- Spustit Příkazovou řádku
- Zvětšit ho na celou obrazovku
- Používat příkaz dir a cd (základ)
Já osobně jsem si uvědomil, že jsem intuitivně používal dva tvary pojmenování. Nevím jak vám, ale mně se osobně líbí víc ten druhý, ten ženský rod ;-) a budu se snažit ho preferovat. Správně česky jsou oba:
- Příkazový řádek
- Příkazová řádka
Dnes bychom si měli vysvětlit rozšířené použití dir a absolutní a relativní cesty.
Absolutní cesty
Chceme se přepnout do adresáře c:/program file. Narážíme na několik problémů, které vyústí ve spoustu nových znalostí:
Jak poznám, že se příkaz neprovedl? Tak většinou tak, jak jsem říkal minule – dostaneme nějakou chybovou hlášku. Ne jinak je tomu i teď a dále na promptu na začátku řádky "svítí" pořád ten náš původní adresář.
Tady jsou ty problémy
- Zpětná lomítka – první věc je, že v DOSu, stejně jako v téměř celém Windows, nefungují podobně jako na Internetu obyčejná lomítka, tedy /. Je nutno používat zpětná lomítka, tedy \. Tip na klávesovou zkratku: pravé Alt+Q. Někdy sice fungují i obyčejná lomítka, ale je lepší si zvyknout na ta obrácená. To je jedna praktická odlišnost od světa Linuxu.
- Adresa s mezerou – v původním DOSu neexistovalo, že jste v názvech souborů používali mezery, nebo dokonce i háčky či čárky. To vše je již překonané, ale s jednou nepříjemností: v případě, že se v názvu vyskytuje mezera (zde mezi slovy program a file), tak se celý název musí dát do uvozovek. Pokud tam mezera není, není toho třeba. To je stejné jako v Linuxu.
- Velká a malá písmena – DOSu je zhola jedno, jestli napíšete Program file nebo program file nebo PROGRAM FILE, takže na velikosti písmen nezáleží, narozdíl od světa Linuxových parádiček.
- Překlepy – bohužel Příkazová řádka neumí kontrolovat vaše překlepy. Takže často se vám stane to co mně, že se prostě překlepnete (adresář program file prostě neexistuje, jmenuje se jinak). Řešení jsou zde dvě: bud si pustíte Total Commander nebo něco podobného a podíváte se, jak se ta složka ve skutečnosti jmenuje nebo lépe ( = po "našem") se tam podíváte takto: dir c:\ (tedy výpis nadřazeného adresáře, kde uvidím, jak se můj zvolený adresář vlastně jmenuje). Linux má na toto velmi mocný "anti-překlepový" nástroj: tabulátor. Při jeho stisku se vám doplní cesta nebo nabídnou všechna možná správná doplnění. Srovnávání s Linuxem je jen tak na okraj. Rozhodně to není úvod do flame war, i když by to rozhodně zvedlo čtenost článku, ale za cenu boje a urážek a to já nerad.
Takže to vše zpracujte ve správné zadání cesty a měli byste být schopní se přepnout do jakéhokoliv adresáře, který máte na svém disku. Tyto věci neplatí jen pro příkaz cd, ale pro všechny příkazy, které DOS obsahuje a kde se dají takto použít, takže to platí např. pro dir, md…
Napíšete-li "C:\Program file" nebo "C:\Program File\PSPad\Convert", říká se tomu plná nebo absolutní cesta. Protože platí absolutně, tedy funguje všude, ať stojíte, kde stojíte, na disku c: (v kterémkoliv adresáři). Vyzkoušejte si to a pokud něco nepůjde, hurá do Fóra, možná jsem na něco zapomněl… ;-)
Relativní cesty
Již Einstein říkal "Vše je relativní" a to platí i pro cesty a adresy. I ty mohou být relativní. Zde slovo relativní znamená opak, protiklad ke slovu absolutní. Relativní cesty sice fungují vždy a všude, ale jen relativně ( = vzhledem) se zřetelem na místo, kde se právě nacházíte. Relativní cesta se pozná snadno: nezačíná na c: (nebo podobně na d: či f: …). Minule jsme používali výhradně tento způsob, namísto toho, abychom psali
cd "C:\Documents and Settings\geon\dokumenty"
napsali jsme hezky stručně
cd dokumenty
Je to totiž o hodně kratší a hezčí. Musíme ale, jako již velmi mírně pokročilí ;-), vědět, že takto se to dá použít pouze a jen když stojím v adresáři, který obsahuje podadresář jménem dokumenty. Vyzkoušejte v "c:\program files" a uvidíte něco takového:
Rozšířené dir
Zatím jsme poznali dir jen v nejzákladnějším tvaru, výše jsem naznačil první možné rozšíření – že mu můžeme předat argument, podobně jako u cd, tedy přímo cestu.
dir "c:\program files"
Výhoda toho je, že se nemusím pracně pomocí cd přepínat do žádané složky a pak použít čisté dir. Další výhoda je, že po skončení příkazu stojím pořád v původním adresáři.
No jo, ale jaké další možnosti, argumenty a přepínače mohu u tohoto příkazu použít? Tak např.:
zde jsou poznámky, ty do příkazů nepsat!
dir C:\Games\mravenci výpis konkrétního adresáře
dir /w zhuštěný výpis
dir /A-D výpis pouze souborů
dir /s výpis celého stromu podadresářů
dir /ON výpis setříděný podle abecedy
dir /OS výpis setříděný podle velikosti (jen soubory)
dir C:\Games\mravenci /s /w kombinace
dir /? nápověda k příkazu
Jak jsem na to přišel? Jak to, že jsem tam chytrý? :-) No tak nejdříve jsem zkusil napsat help dir – to nepomohlo. Ale alespoň mi to napsalo, co mohu zkusit: dir /?. No a už víte o příkazu dir vše, nebo téměř vše, pokud něčemu z té nápovědy nerozumíte. Může být matoucí, že v těchto případech se musí používat lomítka obyčejná – těmto věcem se říká přepínače a musí se psát za obyčejnou a ne zpětnou mezerou.
Ještě jedna poznámka: při obyčejném dir se složky a soubory tisknou ne podle abecedy, ani podle data, ale jinak, snad podle data přidání na disk nebo podle umístnění v jakési tabulce. Důležité je však vědět, že pokud budu chtít tisknout podle abecedy, musím použít přepínač /ON, pokud podle data tak ....Úkol
Pusťte si Příkazovou řádku a zůstaňte ve svém domovském adresáři. Tam budete stát po celou dobu tohoto úkolu. Jinými slovy – zákaz používat cd. Nakonec mi pošlete výpis, co všechno se vám na černé obrazovce objevilo. Zajímá mě:
- Jaké máte všechny soubory (žádné složky!) v adresáři c:\Program files
- Výpis pouze složek (žádné soubory!) z vaší složky Dokumenty, seřazené podle abecedy
- Zhuštěný (... /w) výpis c:\program files\pspad – pokud PSPad nemáte, tak okamžitě :-D nainstalovat nebo zhuštěný výpis jiného adresáře
- Kdo chce za jedna, musí – v souladu s pravidly – odevzdat něco víc. Jen doufám, že to nebude kompletní výpis c:\ na 100 stran &ndash :-); mějte na vědomí, že možná nemáte vše legálně a v odevzdaných úkolech to může kdokoliv a kdykoliv vidět.