pushd
a popd
jsou příkazy, které vám umožňují pracovat se zásobníkem adresářů a měnit aktuální pracovní adresář v Linuxu a dalších operačních systémech podobných Unixu. Ačkoli pushd
a popd
jsou velmi výkonné a užitečné příkazy, jsou nedoceněné a málo používané.
V tomto tutoriálu vám ukážeme, jak používat pushd
a popd
příkazy k procházení stromem adresářů vašeho systému.
Zásobník adresářů #
Zásobník adresářů je seznam adresářů, do kterých jste dříve navigovali. Obsah zásobníku adresářů lze zobrazit pomocí dirs
příkaz. Adresáře se přidávají do zásobníku při přechodu do adresáře pomocí pushd
a odstraněn pomocí popd
příkaz.
Aktuální pracovní adresář je vždy na vrcholu zásobníku adresářů. Aktuální pracovní adresář je adresář (složka), ve kterém uživatel aktuálně pracuje. Při každé interakci s příkazovým řádkem pracujete v adresáři.
pwd
vám umožní zjistit, ve kterém adresáři se právě nacházíte.
Při procházení systémem souborů použijte Tab
klíč pro automatické doplňování názvů adresářů. Přidání lomítka na konec názvu adresáře je volitelné.
pushd
, popd
a dirs
jsou vestavěné shelly a jejich chování se může mírně lišit shell od shellu. Pokryjeme Bash vestavěnou verzi příkazů.
pushd
Příkaz #
Syntaxe pro pushd
příkaz je následující:
pushd [OPTIONS] [DIRECTORY]
Chcete-li například uložit aktuální adresář na začátek zásobníku adresářů a změnit jej na /var/www
byste napsali:
~$ pushd /var/www
V případě úspěchu výše uvedený příkaz vytiskne zásobník adresářů. ~
je adresář, ve kterém jsme provedli pushd
příkaz. Symbol vlnovky ~
znamená domovský adresář.
/var/www ~
pushd
nejprve uloží aktuální pracovní adresář na začátek zásobníku a poté přejde do daného adresáře. Protože aktuální adresář musí být vždy na vrcholu zásobníku, po změně se nový aktuální adresář přesune na začátek zásobníku, ale neuloží se do zásobníku. Chcete-li jej uložit, musíte vyvolat pushd
z toho. Pokud používáte cd
Chcete-li přejít do jiného adresáře, horní položka zásobníku bude ztracena,
Pojďme do zásobníku přidat další adresář:
/var/www$ pushd /opt
/opt /var/www ~
Pro potlačení změny adresáře použijte -n
volba. Chcete-li například přidat /usr/local
adresář do zásobníku, ale neměníte se do něj, napište:
/opt$ pushd -n /usr/local
Protože aktuální adresář (který je vždy nahoře) se nezmění, /usr/local
adresář je přidán jako druhý od vrcholu zásobníku:
/opt /usr/local /var/www ~
pushd
přijímá dvě možnosti, +N
a -N
která vám umožní přejít na Nth
adresář zásobníku. +N
volba se změní na Nth
prvek seznamu zásobníku počítající zleva doprava počínaje nulou. Když -N
se používá směr počítání zprava doleva.
Pro lepší ilustraci možností vytiskněme aktuální zásobník adresářů:
/opt$ dirs -l -v
Výstup zobrazí indexovaný seznam zásobníku adresářů:
0 /opt
1 /usr/local
2 /var/www
3 /home/linuxize
Pokud chcete změnit na /var/www
adresář a přeneste jej na vrchol zásobníku, použijete jeden z následujících.
Při počítání shora dolů (nebo zleva doprava) je index adresáře 2
.
pushd +2
Při počítání zdola nahoru index /var/www
adresář je 1
.
pushd -1.
Při použití bez jakéhokoli argumentu pushd
přepne dva horní adresáře a z nového vrcholu udělá aktuální adresář. Je to stejné jako při použití cd -
příkaz.
popd
Příkaz #
popd
příkaz má tvar:
popd [OPTIONS]
Při použití bez argumentu popd
odebere horní adresář ze zásobníku a přejde do nového hlavního adresáře.
Řekněme, že máme následující zásobník adresářů:
/opt /usr/local /var/www /etc/nginx ~
Pokud spustíte popd
příkaz odstraní /opt
ze zásobníku a změňte jej na /usr/local
adresář:
/opt$ popd
Výstup zobrazí nový zásobník adresářů:
/usr/local /var/www /etc/nginx ~
-n
volba potlačí výchozí změnu adresáře a odstraní druhou položku ze zásobníku:
/opt$ popd -n
/usr/local /etc/nginx ~
Stejné jako pushd
, popd
také přijímá +N
a -N
možnosti, které lze použít k odstranění Nth
adresář zásobníku.
/opt$ popd +1
/usr/local ~
Závěr č.
Normálně byste použili cd
příkaz pro přesun z jednoho adresáře do druhého. Pokud však trávíte hodně času na příkazovém řádku, pushd
a popd
příkazy zvýší vaši produktivitu a efektivitu.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.