A pushd és a popd használata Linuxon

Sok linuxos még soha nem hallott a pushd-ról és a popd-ról, de örökké léteznek. Jelentősen felgyorsíthatják a könyvtárakban történő navigálást a parancssorban. Végigvezetjük, hogyan kell használni őket.

Mik azok a pushd és popd?

Az egyik újítás Bill Joy beiktatta 1978-ba C Shell a címtárverem fogalma és a manipulálására szolgáló eszközök: pushd és popd. Az utánzás a hízelgés legőszintébb formája, a címtárverem, a pushd és a popd hamarosan beépültek más shell-ekbe (például a Bashba) és még más operációs rendszerekbe is.

A verem koncepciója egyszerű. A tételek egyenként kerülnek a kötegbe, és mindig a legutóbb hozzáadott elem foglalja el a legfelső helyet. Amikor az elemeket lekéri a veremből, a rendszer eltávolítja őket sorrendben, felülről lefelé. Az ilyen jellegű kötegeket gyakran úgy emlegetik Utoljára be, elsőként ki (LIFO) sorok.

Valójában a pushd és a popd egy kicsit rugalmasabb ennél, de ez egy jó modell, amelyet most érdemes szem előtt tartani.

Mivel egy könyvtárveremről beszélünk, valószínűleg nem meglepő, hogy a „d” a pushd-ben és a popd-ban a „könyvtárat” jelenti. Ezek a parancsok lehetővé teszik, hogy a könyvtárakat a könyvtárverembe helyezze, vagy kiemelje őket onnan.

De hogyan válik ez hasznunkra?

Hogyan pushd feltölti a verem

A pushd használatakor a következő három dolog történik:

Ugyanúgy módosítod a könyvtárat, mintha cd-t használtál volna.
A könyvtár neve és elérési útja hozzáadódik a veremhez.
A verem a könyvtárak szóközzel elválasztott listájaként jelenik meg.

  Hogyan csökkenthető az asztali animációk száma Macen a Mozgáscsökkentés funkcióval

A következő példákban figyelje meg, hogyan növekszik a könyvtárverem minden egyes új pushd paranccsal. Azt is vegye figyelembe, hogy a verem teteje balra van – itt jelennek meg az új bejegyzések.

Az első pushd parancs után két bejegyzés található a veremben: az a könyvtár, amelyet elhagytál, és az, amelyikbe áthelyezted.

Példánkban a következőket írjuk be:

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

A

Az utolsó pushd parancs visszavitt minket a saját könyvtárunkba, így a verem első és utolsó bejegyzése a tilde (~), amely a saját könyvtárunkat jelöli. Ez azt mutatja, hogy bár egy könyvtár már a veremben van, más pushd parancsokhoz ismét hozzá lesz adva.

Vegye figyelembe azt is, hogy a verem bal szélső bejegyzése, amely a legutóbb hozzáadott bejegyzés, az aktuális könyvtár.

A dirs Parancs

Használhatja a dirs parancsot az alábbiak szerint a könyvtárverem megjelenítéséhez:

dirs

A

A veremre nincs hatással, csak megjeleníti. A pushd-vel használható opciók egy része a könyvtárak helyzetére vonatkozik a veremben.

Ha látni szeretné az egyes könyvtárak numerikus pozícióját, használja a -v (függőleges) kapcsolót az alábbiak szerint:

dirs -v

A

Ha a tilde (~) helyett inkább a kezdőkönyvtár kiírt elérési útját szeretné látni, adja hozzá a -l (hosszú formátum) opciót, például:

dirs -v -l

A

Könyvtár hozzáadása a veremhez

Amint láttuk, amikor a pushd parancsot használja, az három dolgot tesz: megváltoztatja a könyvtárat, hozzáadja az új könyvtárat a veremhez, és megjeleníti a veremet. A -n (nincs elforgatás) kapcsolóval hozzáadhat egy könyvtárat a veremhez anélkül, hogy megváltoztatná az aktuális könyvtárat.

Íme a könyvtárkészletünk:

dirs -v -l

A

Most a pushd parancsot használjuk paraméterként az -n kapcsolóval és a /home/dave könyvtár pas-val. Ezután újra ellenőrizzük a könyvtárvermet.

  Kerékpáros navigációs útvonaltervek lekérése az Apple Maps alkalmazásban

A következőket írjuk be:

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

A

A /home/dave könyvtárat az 1. helyben lévő veremhez adtuk, amely a verem második helye. Nem foglalhatja el a legfelső pozíciót, mert a nulla hely mindig az aktuális könyvtár.

Nem hagytuk el az aktuális ~/Videos könyvtárat, így nem került más helyre a veremben.

Címtár módosítása a verem elforgatásával

A pushd numerikus paraméterekkel a verem bármely könyvtárába léphet, és a verem elfordul, amikor ezt teszi. Az áthelyezésre kiválasztott könyvtár lesz az első bejegyzés a veremben.

A veremben lévő könyvtárakra a pozíciószámuk alapján hivatkozhat. A verem tetejétől vagy aljától számolhat. Pozitív számok esetén, például +3, felülről számoljon; negatív számok esetén, például -2, alulról számoljon.

A /home/dave/Documents könyvtár a harmadik helyen található. A következő paranccsal mozgathatjuk a könyvtárat:

pushd +3

A

Az általunk kiválasztott könyvtár feletti veremben lévő könyvtárak a verem aljára kerülnek. A választott könyvtárunk most a legfelső pozíciót foglalja el, és átkerültünk ebbe a könyvtárba.

Ha át akarunk lépni a verem alján lévő könyvtárba, akkor a következő parancsot használhatjuk:

pushd -0

A

Az utolsó könyvtár az első helyre kerül, az összes többi pedig lejjebb kerül a veremben. Átváltoztunk a ~/Pictures könyvtárba.

A popd parancs

A popd paranccsal eltávolíthatja a könyvtárakat a veremből.

Ha megnézzük a könyvtárveremet, láthatjuk, hogy az 1. pozícióban lévő könyvtár a /home/dave. A veremből való eltávolításához a következőt írjuk be, hogy a számot a popd-nak továbbítsuk:

dirs -v -l
popd +1

A

A /home/dave könyvtárat eltávolították, és az alatta lévők a veremben egy hellyel feljebb kerültek.

  A Nextcloud szinkronizálási kliens telepítése Linuxon

Ahogy a pushd-val, úgy a popd-val is a verem aljáról számolhatunk. Az utolsó könyvtár eltávolításához a veremből a következőket írjuk be:

popd -0

A

A ~/Music könyvtárat a rendszer eltávolítja a verem utolsó helyéről.

A könyvtár megváltoztatásához tegyen valamit, majd ugorjon vissza az előző könyvtárba, használhatja együtt a pushd-t és a popd-t.

A pushd parancsot használjuk, hogy másik könyvtárba lépjünk. A popd-t használjuk a verem legfelső könyvtárának elvetésére, és a második pozícióban lévő könyvtárba való átlépésre. Ez az a könyvtár, ahonnan most költözött ki, így visszakerül abba a könyvtárba, amelyben eredetileg volt.

A következőket írjuk be:

pushd ~
popd

A

A ~/Projects könyvtárban kezdtük, a kezdőkönyvtárba toltuk, majd visszaugrottunk a ~/Projects könyvtárba.

Forgatás a teljes veremben

Megmutatjuk, hogyan lehet elforgatni egy veremben néhány beágyazott könyvtárat, de a fájlrendszerben bárhol használhatunk könyvtárakat.

A fészkelés legmélyebb szintje:

/home/dave/Projects/htg/articles

A kezdőkönyvtárból fokozatosan lefelé haladunk az egyes könyvtárakon, amíg el nem érjük a cikkek könyvtárát. Ezután nézzük meg a könyvtár veremét.

A következőket írjuk be:

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

A

Ha többször ad ki pushd +1 parancsokat, körbe-körbe lépkedhet a könyvtárak között. Ha ezt gyakran csinálod, a pushd +1 jó jelölt lehet álnévre.

Írja be a következőket:

pushd +1

A

Bélyegzés a verem felett

Könnyű visszatérni a régi szokásokhoz, és a cd-vel könyvtárat váltani. Ha ezt megteszi, akkor a verem első könyvtárát bélyegzi át. Ez elkerülhetetlen, mivel az első hely az aktuális munkakönyvtár számára van fenntartva – a többi nem változtat pozíciót.

Ehhez írja be a következőt:

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

A

Miután megszokta a pushd és popd parancsokat (és esetleg néhány álnév létrehozására használja őket), szupergyorsan tud ugrani a könyvtárak között.

Ezért ácsorogunk a parancssorban. A hatékonyság megdöbben, igaz?