Jak používat příkaz cd v systému Linux

Některé z příkazů v Linuxu jsou natolik frekventované, že jejich užívání bereme jako samozřejmost. Mezi takové příkazy patří i cd, který se používá ke změně adresářů. Existuje několik triků, které mohou zvýšit vaši efektivitu při práci s cd, nebo dokonce umožní jeho úplné vynechání.

Příkaz, na který automaticky reagujete

Stejně jako mrkáme, aniž bychom o tom přemýšleli, i některé příkazy Linuxu používáme podvědomě. Tyto příkazy jsou sice jednoduché a nenápadné, ale denně je využíváme. Jedním z nich je právě cd.

Základy používání příkazu cd se uživatelé Linuxu učí během prvních chvil práce s tímto systémem. Možná jste se s ním již setkali v jiných operačních systémech a jeho funkce je vám dobře známá: slouží ke změně aktuálního pracovního adresáře. Co dalšího se o něm dá ještě vědět?

Překvapivě toho může být více, než se zdá. Následující tipy a triky vám mohou pomoci zefektivnit vaši práci s tímto příkazem.

Standardní postupy s cd

Pro úplnost si stručně zopakujeme standardní používání příkazu cd.

Pokud se nacházíte ve svém domovském adresáři a chcete přejít do adresáře /usr/lib/firefox/browser a poté se vrátit zpět, můžete použít následující příkazy:

cd /usr/lib/firefox/browser/
cd /home/dave

Nemusíte zadávat celou cestu k adresáři; můžete využít automatické dokončování. Po zadání dostatečného počtu písmen pro jednoznačné určení názvu adresáře, stiskněte klávesu Tab a shell automaticky doplní zbytek názvu.

Například, zadejte do příkazového řádku:

cd /usr/lib/fire

Nyní stiskněte Tab a shell doplní „firefox“. Pokud k cestě přidáte „/b“ a znovu stisknete Tab, doplní se i adresář „browser“.

Shell automaticky přidává koncové lomítko, takže můžete proces dokončování tabulátorem opakovat. To je také důvod, proč je u prvního příkazu koncové lomítko. U druhého příkazu lomítko není, protože cesta byla zadaná celá.

Pro rychlý návrat do domovského adresáře z jakéhokoli místa v systému, můžete použít vlnovku (~). Stačí zadat:

cd ~

Tyto příklady ukazují absolutní cesty, kde zadáváte celou cestu od kořenového adresáře až k cílovému adresáři.

Relativní cesty se odvozují z aktuálního pracovního adresáře. Pokud se například ve vašem domovském adresáři nachází adresář s názvem work, můžete zobrazit jeho obsah pomocí příkazu tree, který vizualizuje stromovou strukturu adresářů. Stačí zadat:

tree

Předpokládejme, že adresář work obsahuje podadresář dev. V kořenovém adresáři se také nachází adresář s názvem dev. Pro zobrazení obou můžete použít ls s volbami -d (adresář) a -hl (čitelné pro člověka, dlouhý výpis), což zobrazí velikosti adresářů v srozumitelných jednotkách a v dlouhém formátu.

Pokud zadáte pouze dev, shell předpokládá, že máte na mysli adresář dev v aktuálním adresáři. Chcete-li shell přinutit, aby hledal dev v kořenovém adresáři, musíte přidat úvodní lomítko, které reprezentuje kořenový adresář systému, jak je uvedeno níže:

ls -d dev -hl
ls -d /dev -hl

Příkaz cd se v tomto ohledu chová podobně jako ls. Pokud zadáte cd dev, shell předpokládá, že máte na mysli adresář dev v aktuálním pracovním adresáři:

cd dev

Bez úvodního lomítka se předpokládá, že i delší cesty začínají z aktuálního pracovního adresáře, jak je znázorněno níže:

cd dev/mobile/android

Změna adresáře s dvojtečkou

Identifikátor .. reprezentuje nadřazený adresář aktuálního pracovního adresáře. Pokud se nacházíte v hluboce zanořeném adresáři, můžete pomocí cd .. přesunout se do nadřazeného adresáře.

Použitím cd ../.. se přesunete o dvě úrovně výše. Přidáním dalších .. do příkazu můžete přesouvat o libovolný počet úrovní v adresářovém stromu.

Zadejte například následující:

cd ..
cd ../..

Můžete si vytvořit aliasy, které tyto manévry zjednoduší. Například:

alias .2="cd ../.."
alias .3="cd ../../.."

Tyto aliasy pak můžete používat stejně jako běžné příkazy.

Aby aliasy byly aktivní i po restartu počítače, musíte je přidat do souboru .bashrc nebo .bash_aliases.

Jednoduché přepínání mezi dvěma adresáři

Symbol pomlčky (-) má také speciální funkci. Použitím cd - se vrátíte do adresáře, ze kterého jste předtím přišli.

Představte si, že se nacházíte v adresáři „c“. Pomocí cd přejdete do adresáře „forth“. Nyní můžete pomocí cd - přeskakovat tam a zpět mezi těmito dvěma adresáři.

Zadejte následující:

cd ../forth

cd -

cd -

Před změnou adresáře se zobrazí název adresáře, do kterého se přesouváte.

Alternativní základní adresář

Shell používá aktuální pracovní adresář jako základní adresář pro relativní cesty. Proměnnou prostředí CDPATH můžete použít k nastavení jiného umístění jako základního adresáře pro relativní cesty. Pokud trávíte většinu času v určité části stromu souborů, může vám to ušetřit spoustu úhozů (a času).

Pro nastavení work/dev/projects jako základního adresáře pro relativní cesty zadejte:

export CDPATH=/home/dave/work/dev/projects

Nyní, při každém použití příkazu cd, se nejprve zkontroluje, zda se odpovídající názvy adresářů nenacházejí v proměnné prostředí CDPATH. Pokud některý z nich odpovídá cílovému adresáři zadanému v příkazu cd, budete do tohoto adresáře přesunuti.

Nyní, bez ohledu na to, kde se v souborovém systému nacházíte, při použití příkazu cd shell zkontroluje, zda se cílový adresář nachází v základním adresáři. Pokud ano, přesunete se do tohoto cílového adresáře.

Pokud cílový adresář začíná úvodním lomítkem (/), což z něj činí absolutní cestu, nebude proměnnou prostředí CDPATH ovlivněn.

Abychom to demonstrovali, zadejte následující:

cd c
cd prolog
cd /usr
cd forth

Proměnná prostředí CDPATH je vlastně cestou, stejně jako proměnná prostředí PATH. Při zadání příkazu shell vyhledá umístění v PATH a hledá shodu. Při použití CDPATH shell hledá shodu umístění v proměnné prostředí CDPATH. Stejně jako PATH může i CDPATH obsahovat více umístění.

Chcete-li, aby shell prohledal aktuální adresář před ostatními umístěními v proměnné prostředí CDPATH, stačí přidat tečku (.) na začátek cesty takto:

export CDPATH=.:/home/dave/work/dev/projects

Chcete-li, aby vaše nastavení byla trvalá, musíte je přidat do konfiguračního souboru, jako je .bashrc.

Je důležité si uvědomit, že pokud nastavíte základní adresář, ovlivní to i změny adresáře prováděné ve skriptech. Abyste tomu zabránili, můžete ve svých skriptech používat absolutní cesty nebo test v souboru .bashrc, když nastavujete svou CDPATH, jak je uvedeno níže:

if test "${PS1+set}"; then CDPATH=.:/home/dave/work/dev/projects; fi

Tímto způsobem se provede test, zda byla nastavena proměnná příkazového řádku $PS1. Proměnná prostředí CDPATH bude nastavena pouze v případě, že test bude úspěšný.

Použití shopt s cd

Pomocí příkazu shopt můžete nastavit různé možnosti shellu. Některé z nich mohou zlepšit vaše používání příkazu cd. Chcete-li je nastavit, použijte volbu -s (povolit) s příkazem shopt a jako argument zadejte název volby.

Možnost cdspell kontroluje názvy adresářů a opravuje některé běžné překlepy, včetně prohozených nebo chybějících znaků, či jmen s nadbytečnými znaky. Pokud najde adresář, který odpovídá opravené verzi, vypíše opravenou cestu a provede akci cd.

Jako příklad zadejte následující, abyste nastavili volbu cdspell a udělali překlep v názvu „Desktop“, a podívejte se, zda shell tento překlep za nás opraví:

shopt -s cdspell
cd Desktpo

Shell zachytil chybu, opravil ji a přesunul se do adresáře „Desktop“.

Další možností shopt, kterou můžete použít s cd, je autocd. Tato možnost eliminuje nutnost zadávat cd. Cokoli zadáte, a co není příkaz, skript nebo jiný spustitelný soubor (například alias), se použije jako cílový adresář. Pokud je možné se do daného adresáře přesunout, vypíše se v okně terminálu a do tohoto adresáře se přesunete.

Jako příklad zadejte následující:

shopt -s autocd
/usr/local/games
/etc
~

Vidíte? Můžete přeskakovat po celém souborovém systému, aniž byste museli používat cd!

Nastavení změněná pomocí shopt ovlivní pouze interaktivní shelly, nikoli skripty.

Závěr

Pravděpodobně si neosvojíte všechny tyto techniky. Je však pravděpodobné, že jste zde našli něco zajímavého nebo užitečného. Vše, co zrychluje nebo zjednodušuje navigaci v příkazovém řádku, je přece jen dobré!