Cum se utilizează pushd și popd pe Linux

Mulți oameni de Linux nu au auzit niciodată de pushd și popd, dar au existat pentru totdeauna. De asemenea, pot accelera dramatic procesul de navigare în directoare pe linia de comandă. Vă vom explica cum să le folosiți.

Ce sunt pushd și popd?

Una dintre inovații Bill Joy încorporat în 1978 C Shell a fost conceptul de stivă de directoare și mijloacele de a o manipula: pushd și popd. Imitația fiind cea mai sinceră formă de lingușire, stiva de directoare, pushd și popd au fost în curând încorporate în alte shell-uri (cum ar fi Bash) și chiar în alte sisteme de operare.

Conceptul de stivă este unul simplu. Articolele sunt plasate pe stivă pe rând, cel mai recent articol adăugat ocupând întotdeauna poziția de sus. Când articolele sunt preluate din stivă, acestea sunt îndepărtate, în ordine, de sus în jos. Stivele de această natură sunt adesea denumite Ultimul intrat, primul ieşit (LIFO) cozi.

De fapt, pushd și popd sunt puțin mai flexibile decât acesta, dar acesta este un model bun de reținut pentru moment.

Deoarece ne referim la o stivă de directoare, probabil că nu este surprinzător faptul că „d” din pushd și popd înseamnă „director”. Aceste comenzi vă permit să împingeți directoare în, sau să le scoateți din stiva de directoare.

Dar cum ne avantajează asta?

Cum pushd populează stiva

Când utilizați pushd, se întâmplă următoarele trei lucruri:

Schimbați directorul la fel ca și când ați fi folosit cd.
Numele și calea directorului sunt adăugate la stivă.
Stiva este afișată ca o listă de directoare separate prin spațiu.

  Cum se schimbă informațiile despre utilizator pe Linux

În următoarele exemple, observați cum crește stiva de directoare cu fiecare comandă pushd nouă. De asemenea, rețineți că partea de sus a stivei este la stânga – aici apar noile intrări.

După prima comandă pushd, există două intrări în stivă: directorul pe care l-ați părăsit și cel în care v-ați mutat.

Pentru exemplul nostru, introducem următoarele:

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

The

Ultima comandă pushd ne-a dus înapoi la directorul nostru de acasă, astfel încât prima și ultima intrare din stivă sunt tilde (~), care reprezintă directorul nostru de acasă. Aceasta arată că, deși un director este deja în stivă, acesta va fi adăugat din nou pentru alte comenzi pushd.

Rețineți, de asemenea, că intrarea cea mai din stânga din stivă, care este cea mai recentă intrare adăugată, este directorul dvs. curent.

Comandamentul dirs

Puteți folosi comanda dirs, așa cum se arată mai jos, pentru a afișa stiva de directoare:

dirs

The

Nu afectează stiva, doar o afișează. Unele dintre opțiunile pe care le puteți utiliza cu pushd se referă la poziția directoarelor în stivă.

Dacă doriți să vedeți poziția numerică a fiecărui director, puteți utiliza opțiunea -v (verticală), așa cum se arată mai jos:

dirs -v

The

Dacă preferați să vedeți calea scrisă către directorul dvs. de acasă în loc de tilde (~), adăugați opțiunea -l (format lung), astfel:

dirs -v -l

The

Adăugarea unui director la stivă

După cum am văzut, atunci când utilizați comanda pushd, aceasta face trei lucruri: vă schimbă directorul, adaugă noul director la stivă și vă afișează stiva. Puteți folosi opțiunea -n (fără rotație) pentru a adăuga un director la stivă fără a schimba directorul curent.

Iată stiva noastră de directoare:

dirs -v -l

The

Acum, vom folosi comanda pushd cu opțiunea -n și vom trece în directorul /home/dave ca parametru. Apoi, vom verifica din nou stiva de directoare.

  Cum să configurați o mașină Steam Linux fără sistemul de operare Steam

Introducem următoarele:

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

The

Directorul /home/dave a fost adăugat la stiva din slotul 1, care este locul doi în stivă. Nu poate ocupa poziția de sus, deoarece slotul zero este întotdeauna directorul curent.

Nu am părăsit directorul curent, ~/Videos, așa că nu a fost rotit într-o altă poziție din stivă.

Schimbarea directorului prin rotirea stivei

Puteți folosi parametri numerici cu pushd pentru a vă deplasa în orice director dintr-o stivă, iar stiva se rotește atunci când faceți acest lucru. Directorul pe care ați ales să îl mutați devine apoi prima intrare din stivă.

Faceți referire la directoarele din stivă după numărul lor de poziție. Puteți număra din partea de sus sau de jos a stivei. Pentru numere pozitive, cum ar fi +3, numărați de sus; pentru numere negative, cum ar fi -2, numărați de jos.

Directorul /home/dave/Documents se află pe poziţia trei. Putem folosi următoarea comandă pentru a muta acel director:

pushd +3

The

Directoarele din stiva de deasupra directorului pe care l-am ales sunt mutate în partea de jos a stivei. Directorul ales de noi ocupă acum poziția de sus și suntem mutați în acel director.

Dacă vrem să ne schimbăm în directorul din partea de jos a stivei, putem folosi următoarea comandă:

pushd -0

The

Ultimul director este mutat în primul slot, iar toate celelalte sunt mutate în jos în stivă. Am fost modificați în directorul ~/Pictures.

Comanda popd

Puteți folosi comanda popd pentru a elimina directoarele din stivă.

Dacă ne uităm la stiva de directoare, putem vedea că directorul din poziția 1 este /home/dave. Pentru a elimina acest lucru din stivă, introducem următoarele pentru a trece numărul la popd:

dirs -v -l
popd +1

The

Directorul /home/dave a fost eliminat, iar cei care se aflau sub el în stivă s-au mutat fiecare cu un loc în sus.

  Cum să verificați utilizarea discului în Linux (4 metode)

La fel cum putem cu pushd, putem număra din partea de jos a stivei cu popd. Pentru a elimina ultimul director din stivă, tastăm:

popd -0

The

Directorul ~/Music este eliminat din ultima poziție din stivă.

Pentru a schimba directorul, faceți ceva și apoi reveniți la directorul anterior, puteți utiliza pushd și popd împreună.

Vom folosi pushd pentru a trece la un alt director. Vom folosi popd pentru a elimina directorul cel mai de sus din stivă și pentru a trece la directorul din a doua poziție. Acesta este directorul din care tocmai te-ai mutat, așa că ești reintrodus în directorul în care te-ai aflat inițial.

Introducem următoarele:

pushd ~
popd

The

Am început în directorul ~/Projects, am împins în directorul principal și apoi am revenit la directorul ~/Projects.

Rotirea prin întreaga stivă

Vom ilustra cum să rotiți printr-o stivă cu câteva directoare imbricate, dar puteți utiliza orice directoare oriunde în sistemul de fișiere.

Cel mai profund nivel de cuibărit al nostru este:

/home/dave/Projects/htg/articles

Din directorul principal, vom coborî progresiv prin fiecare director până ajungem la directorul articole. Apoi, ne vom uita la stiva de directoare.

Introducem următoarele:

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

The

Când lansați în mod repetat comenzi pushd +1, puteți parcurge stiva de directoare. Dacă faci asta des, pushd +1 ar fi un candidat bun pentru un alias.

Introduceți următoarele:

pushd +1

The

Ștampilarea peste stivă

Este ușor să revii la vechile obiceiuri și să folosești cd pentru a schimba directorul. Dacă faci asta, vei ștampila primul director din stivă. Acest lucru este inevitabil, deoarece primul slot este rezervat directorului de lucru curent – niciunul dintre ceilalți nu își schimbă poziția.

Pentru a face acest lucru, tastați următoarele:

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

The

După ce te obișnuiești cu comenzile pushd și popd (și, poate, le folosești pentru a crea câteva alias-uri), vei avea o modalitate super-rapidă de a trece între directoare.

Acesta este motivul pentru care stăm în jurul liniei de comandă. Eficiența scapă, nu?