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.
Tartalomjegyzék
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.
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 ~
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 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
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
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
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.
A következőket írjuk be:
pushd -n /home/dave
dirs -v -l
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
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
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 /home/dave könyvtárat eltávolították, és az alatta lévők a veremben egy hellyel feljebb kerültek.
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 ~/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 ~/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
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
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
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?