Android

Příkazy pushd a popd v Linuxu

The Great Gildersleeve: Gildy Gets Eyeglasses / Adeline Fairchild Arrives / Be Kind to Birdie

The Great Gildersleeve: Gildy Gets Eyeglasses / Adeline Fairchild Arrives / Be Kind to Birdie

Obsah:

Anonim

pushd a popd jsou příkazy, které vám umožňují pracovat s adresářovým zásobníkem a měnit aktuální pracovní adresář v Linuxu a dalších operačních systémech podobných Unixu. Přestože jsou pushd a popd velmi výkonné a užitečné příkazy, jsou podceňovány a zřídka používány.

V tomto tutoriálu vám ukážeme, jak používat příkazy pushd a popd k procházení adresářového stromu 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í příkazu dirs . Adresáře jsou přidány do zásobníku při změně adresáře pomocí příkazu pushd a odstraněny pomocí příkazu popd .

Aktuální pracovní adresář je vždy v horní části 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.

Příkaz pwd vám umožní zjistit, v jakém adresáři se právě nacházíte.

Při navigaci v systému souborů použijte klávesu Tab pro automatické doplnění názvů adresářů. Přidání lomítka na konec názvu adresáře je volitelné.

pushd , popd a dirs jsou shelly vestavěné a jeho chování se může mírně lišit od shellu k shellu. Pokryjeme vestavěnou verzi příkazů Bash.

pushd

Syntaxe příkazu pushd je následující:

pushd

Chcete-li například uložit aktuální adresář na začátek zásobníku adresářů a změnit /var/www , zadejte:

~$ pushd /var/www

Po úspěchu výše uvedený příkaz vytiskne zásobník adresářů. ~ je adresář, ve kterém jsme provedli příkaz pushd . Symbol vlnovky ~ znamená domovský adresář.

/var/www ~

pushd nejprve uloží aktuální pracovní adresář do horní části zásobníku a poté přejde do daného adresáře. Protože aktuální adresář musí být vždy v horní části zásobníku, nový změněný adresář přejde na horní část zásobníku, ale není uložen do zásobníku. Chcete-li jej uložit, musíte z něj vyvolat pushd . Pokud použijete cd ke změně do jiného adresáře, bude ztracena horní položka zásobníku,

Pojďme do zásobníku přidat další adresář:

/var/www$ pushd /opt

/opt /var/www ~

Chcete-li potlačit výchozí změnu adresáře, použijte volbu -n . Například pro přidání /usr/local do zásobníku, ale nezměnit se do něj, napíšete:

/opt$ pushd -n /usr/local

Protože se aktuální adresář (který je vždy v horní části) nezmění, přidá se druhý adresář /usr/local z horní části zásobníku:

/opt /usr/local /var/www ~

pushd přijímá dvě možnosti, +N a -N které vám umožňují přejít do Nth adresáře zásobníku. Možnost +N změní na Nth prvek seznamu zásobníků počítající zleva doprava počínaje nulou. Při použití -N je směr počítání zprava doleva.

Abychom lépe ilustrovali možnosti, vytiskneme 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

Při počítání shora dolů (nebo zleva doprava) je index adresáře 2 .

pushd +2

Při počítání zdola nahoru je index adresáře /var/www 1 .

pushd -1.

Při použití bez argumentu bude pushd přepínat horní dva adresáře a z nového top bude aktuální adresář. Je to stejné jako při použití příkazu cd - .

popd příkaz

Příkaz popd má podobu:

popd

Pokud je použit bez argumentu, popd odebere top adresář ze zásobníku a přejde do nového top adresáře.

Řekněme, že máme následující zásobník adresářů:

/opt /usr/local /var/www /etc/nginx ~

/opt$ popd

Výstup zobrazí nový zásobník adresářů:

/usr/local /var/www /etc/nginx ~

Možnost -n potlačí výchozí změnu adresáře a odebere druhou položku ze zásobníku:

/opt$ popd -n

/usr/local /etc/nginx ~

Stejně jako pushd , popd také akceptuje volby +N a -N které lze použít k odstranění Nth adresáře zásobníku.

/opt$ popd +1

/usr/local ~

Závěr

Normálně byste použili příkaz cd k přesunu z jednoho adresáře do druhého. Pokud však na příkazovém řádku trávíte mnoho času, příkazy pushd a popd zvýší vaši produktivitu a efektivitu.

bash terminál