Jak používat pushd a popd v Linuxu

Mnoho lidí z Linuxu nikdy neslyšelo o pushd a popd, ale jsou tu odjakživa. Mohou také výrazně urychlit proces procházení adresářů na příkazovém řádku. Provedeme vás, jak je používat.

Co jsou push a popd?

Jedna z inovací Bill Joy začleněna v roce 1978 C Shell byl koncept zásobníku adresářů a prostředků k jeho manipulaci: pushd a popd. Napodobování je nejupřímnější forma lichotky, takže adresářový zásobník, pushd a popd byly brzy začleněny do jiných shellů (jako Bash) a dokonce i jiných operačních systémů.

Koncept zásobníku je jednoduchý. Položky jsou umístěny na hromádku po jedné, přičemž poslední přidaná položka vždy zaujímá nejvyšší pozici. Když jsou položky načteny ze zásobníku, jsou odstraněny v pořadí shora dolů. Stohy tohoto charakteru jsou často označovány jako Poslední dovnitř, první ven (LIFO) fronty.

Ve skutečnosti jsou pushd a popd o něco flexibilnější než toto, ale je to dobrý model, který je třeba mít na paměti.

Když mluvíme o zásobníku adresářů, pravděpodobně není překvapením, že „d“ v pushd a popd znamená „adresář“. Tyto příkazy vám umožňují vkládat adresáře do zásobníku adresářů nebo je z něj vytahovat.

Ale jak nám to prospívá?

Jak pushd naplní zásobník

Když použijete push, stanou se následující tři věci:

Adresář změníte stejně, jako kdybyste použili cd.
Název a cesta k adresáři jsou přidány do zásobníku.
Zásobník se zobrazí jako seznam adresářů oddělených mezerami.

V následujících příkladech si všimněte, jak se zásobník adresářů zvětšuje s každým novým příkazem pushd. Všimněte si také, že horní část zásobníku je vlevo – zde se objevují nové položky.

  Jak přimět Chrome, aby přestal nabízet ukládání dat kreditních karet

Po prvním příkazu pushd jsou v zásobníku dvě položky: adresář, který jste opustili, a ten, do kterého jste se přesunuli.

Pro náš příklad zadáme následující:

pushd ~/Desktop
pushd ~/Music
pushd ~/Documents
pushd ~/Pictures
pushd ~

The

Poslední příkaz pushd nás vrátil do našeho domovského adresáře, takže první a poslední položky v zásobníku jsou vlnovka (~), která představuje náš domovský adresář. To ukazuje, že i když je adresář již v zásobníku, bude znovu přidán pro další příkazy push.

Všimněte si také, že položka zcela vlevo v zásobníku, což je naposledy přidaná položka, je váš aktuální adresář.

Velitelství dirs

K zobrazení zásobníku adresářů můžete použít příkaz dirs, jak je znázorněno níže:

dirs

The

Neovlivňuje zásobník, pouze jej zobrazuje. Některé z možností, které můžete použít s pushd, odkazují na pozici adresářů v zásobníku.

Pokud chcete vidět číselnou pozici každého adresáře, můžete použít volbu -v (svisle), jak je uvedeno níže:

dirs -v

The

Pokud byste místo vlnovky (~) raději viděli uvedenou cestu k domovskému adresáři, přidejte volbu -l (dlouhý formát), například takto:

dirs -v -l

The

Přidání adresáře do zásobníku

Jak jsme viděli, když použijete příkaz pushd, provede tři věci: změní váš adresář, přidá nový adresář do zásobníku a zobrazí zásobník. Pomocí volby -n (bez rotace) můžete přidat adresář do zásobníku, aniž byste změnili aktuální adresář.

Zde je náš zásobník adresářů:

dirs -v -l

The

Nyní jako parametr použijeme příkaz pushd s volbou -n a pas v adresáři /home/dave. Poté znovu zkontrolujeme zásobník adresářů.

  Čtěte a ukládejte technické novinky určené speciálně pro vás

Zadáme následující:

pushd -n /home/dave
dirs -v -l

The

Adresář /home/dave byl přidán do zásobníku ve slotu 1, což je druhé místo v zásobníku. Nemůže obsadit nejvyšší pozici, protože slot nula je vždy aktuální adresář.

Neopustili jsme aktuální adresář ~/Videos, takže nebyl otočen na jinou pozici v zásobníku.

Změna adresáře otočením zásobníku

Pomocí číselných parametrů s pushd se můžete přesunout do libovolného adresáře v zásobníku a zásobník se při tom otáčí. Adresář, který jste se rozhodli přesunout, se pak stane první položkou v zásobníku.

Na adresáře v zásobníku odkazujete jejich číslem pozice. Můžete počítat od horní nebo spodní části hromádky. Pro kladná čísla, například +3, počítejte shora; pro záporná čísla, například -2, počítejte ode dna.

Adresář /home/dave/Documents je na pozici tři. K přesunutí tohoto adresáře můžeme použít následující příkaz:

pushd +3

The

Adresáře v zásobníku nad adresářem, který jsme vybrali, se přesunou na konec zásobníku. Náš vybraný adresář nyní zaujímá nejvyšší pozici a my jsme se do tohoto adresáře přesunuli.

Pokud se chceme změnit do adresáře na konci zásobníku, můžeme použít následující příkaz:

pushd -0

The

Poslední adresář se přesune do prvního slotu a všechny ostatní se přesunou dolů v zásobníku. Přešli jsme do adresáře ~/Pictures.

Příkaz popd

K odstranění adresářů ze zásobníku můžete použít příkaz popd.

Pokud se podíváme na zásobník adresářů, vidíme, že adresář na pozici 1 je /home/dave. Abychom to odstranili ze zásobníku, napíšeme následující, abychom číslo předali popd:

dirs -v -l
popd +1

The

Adresář /home/dave byl odstraněn a ty, které byly v zásobníku pod ním, se posunuly o jedno místo výše.

Stejně jako můžeme s pushd, můžeme počítat ode dna zásobníku s popd. Chcete-li odstranit poslední adresář ze zásobníku, napíšeme:

popd -0

The

Adresář ~/Music je odstraněn z poslední pozice v zásobníku.

  Jak ovládat stropní ventilátory v chytrém domě

Chcete-li změnit adresář, něco udělat a pak přejít zpět do předchozího adresáře, můžete použít pushd a popd společně.

Pro přesun do jiného adresáře použijeme pushd. Použijeme popd k odstranění nejvyššího adresáře v zásobníku a přesuneme se do adresáře na druhé pozici. Toto je adresář, ze kterého jste se právě přestěhovali, takže se vrátíte zpět do adresáře, ve kterém jste byli původně.

Zadáme následující:

pushd ~
popd

The

Začali jsme v adresáři ~/Projects, přesunuli jsme se do domovského adresáře a pak se vrátili zpět do adresáře ~/Projects.

Otáčení přes celou sadu

Budeme ilustrovat, jak procházet zásobníkem s některými vnořenými adresáři, ale můžete použít libovolné adresáře kdekoli v systému souborů.

Naše nejhlubší úroveň hnízdění je:

/home/dave/Projects/htg/articles

Z domovského adresáře budeme postupně sestupovat každým adresářem, dokud se nedostaneme do adresáře článků. Poté se podíváme na zásobník adresářů.

Zadáme následující:

pushd ~/Projects
pushd htg
pushd articles
dirs -v -l

The

Když opakovaně zadáváte příkazy push +1, můžete cyklicky procházet zásobníkem adresářů. Pokud to děláte často, pushd +1 by bylo dobrým kandidátem na alias.

Zadejte následující:

pushd +1

The

Razítko přes zásobník

Je snadné vrátit se ke starým zvykům a použít cd ke změně adresáře. Pokud to uděláte, orazítkujete první adresář v zásobníku. To je nevyhnutelné, protože první slot je vyhrazen pro aktuální pracovní adresář – žádný z ostatních nemění pozici.

Chcete-li to provést, zadejte následující:

dirs -v -l
cd ~/Music
dirs -v -l

The

Poté, co si zvyknete na příkazy pushd a popd (a možná je použijete k vytvoření několika aliasů), budete mít super rychlý způsob přeskakování mezi adresáři.

To je důvod, proč se poflakujeme kolem příkazového řádku. Účinnost skály, že?