Sådan bruges pushd og popd på Linux

Mange Linux-folk har aldrig hørt om pushd og popd, men de har eksisteret for evigt. De kan også dramatisk fremskynde processen med at navigere i mapper på kommandolinjen. Vi vil guide dig igennem, hvordan du bruger dem.

Hvad er pushd og popd?

En af nyskabelserne Bill Joy indarbejdet i hans 1978 C Shell var konceptet med en mappestak og midlerne til at manipulere den: pushd og popd. Da efterligning var den oprigtigste form for smiger, blev mappestakken, pushd og popd snart inkorporeret i andre skaller (som Bash) og endda andre operativsystemer.

Konceptet med stakken er simpelt. Elementer placeres på stakken et ad gangen, hvor det senest tilføjede element altid indtager den øverste position. Når genstande hentes fra stakken, fjernes de i rækkefølge fra toppen og nedad. Stakke af denne art omtales ofte som Sidst ind, først ud (LIFO) køer.

Faktisk er pushd og popd lidt mere fleksible end dette, men dette er en god model at huske på lige nu.

Da vi henviser til en mappestak, kommer det sandsynligvis ikke som nogen overraskelse, at “d” i pushd og popd står for “directory.” Disse kommandoer giver dig mulighed for at skubbe mapper ind på eller springe dem ud af mappestakken.

Men hvordan gavner det os?

Hvordan pushd udfylder stakken

Når du bruger pushd, sker der følgende tre ting:

Du ændrer mappen på samme måde, som hvis du havde brugt cd.
Navnet og stien til mappen føjes til stakken.
Stakken vises som en mellemrumssepareret liste over mapper.

I de følgende eksempler skal du bemærke, hvordan mappestakken vokser med hver ny pushd-kommando. Bemærk også, at toppen af ​​stakken er til venstre – det er her, de nye poster vises.

  Sådan installeres Evopop GTK-temaet på Linux

Efter den første pushd-kommando er der to poster i stakken: den mappe, du forlod, og den, du flyttede til.

For vores eksempel skriver vi følgende:

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

Det

Den sidste pushd-kommando tog os tilbage til vores hjemmemappe, så den første og sidste indgang i stakken er tilde (~), som repræsenterer vores hjemmemappe. Dette viser, at selvom en mappe allerede er i stakken, vil den blive tilføjet igen for andre pushd-kommandoer.

Bemærk også, at posten længst til venstre i stakken, som er den senest tilføjede post, er din nuværende mappe.

Dirs Kommando

Du kan bruge dirs-kommandoen, som vist nedenfor, til at vise mappestakken:

dirs

Det

Det påvirker ikke stakken, det viser det bare. Nogle af de muligheder, du kan bruge med pushd, henviser til placeringen af ​​mapperne i stakken.

Hvis du ønsker at se den numeriske position for hver mappe, kan du bruge -v (lodret) mulighed som vist nedenfor:

dirs -v

Det

Hvis du hellere vil se den stavede sti til din hjemmemappe i stedet for tilde (~), skal du tilføje -l (langt format), som sådan:

dirs -v -l

Det

Tilføjelse af en mappe til stakken

Som vi har set, når du bruger pushd-kommandoen, gør den tre ting: ændrer din mappe, tilføjer den nye mappe til stakken og viser stakken for dig. Du kan bruge -n (ingen rotation) mulighed for at tilføje en mappe til stakken uden at ændre den aktuelle mappe.

Her er vores mappestak:

dirs -v -l

Det

Nu vil vi bruge pushd-kommandoen med -n-indstillingen og pas i /home/dave-mappen som en parameter. Derefter tjekker vi mappestakken igen.

Vi skriver følgende:

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

Det

Mappen /home/dave blev tilføjet til stakken i slot 1, som er andenpladsen i stakken. Den kan ikke indtage toppositionen, fordi slot nul altid er den aktuelle mappe.

  Sådan installeres Opera på Linux

Vi forlod ikke den aktuelle mappe, ~/Videos, så den blev ikke roteret til en anden position i stakken.

Ændring af mappe ved at rotere stakken

Du kan bruge numeriske parametre med pushd for at flytte til en hvilken som helst mappe i en stak, og stakken roterer, når du gør det. Den mappe, du har valgt at flytte, bliver derefter den første post i stakken.

Du refererer til mapperne i stakken ved deres positionsnummer. Du kan tælle fra toppen eller bunden af ​​stakken. For positive tal, såsom +3, tæl fra toppen; for negative tal, såsom -2, tæl fra bunden.

Mappen /home/dave/Documents er i position tre. Vi kan bruge følgende kommando til at flytte den mappe:

pushd +3

Det

Mapperne i stakken over den mappe, vi har valgt, flyttes til bunden af ​​stakken. Vores valgte mappe indtager nu toppositionen, og vi er flyttet ind i den mappe.

Hvis vi vil skifte til mappen i bunden af ​​stakken, kan vi bruge følgende kommando:

pushd -0

Det

Den sidste mappe flyttes til den første plads, og alle de andre flyttes ned i stakken. Vi er ændret til mappen ~/Pictures.

popd-kommandoen

Du kan bruge popd-kommandoen til at fjerne mapper fra stakken.

Hvis vi ser på mappestakken, kan vi se, at mappen i position 1 er /home/dave. For at fjerne dette fra stakken, skriver vi følgende for at sende nummeret til popd:

dirs -v -l
popd +1

Det

Mappen /home/dave blev fjernet, og dem, der var under den i stakken, er hver flyttet et sted op.

Ligesom vi kan med pushd, kan vi tælle fra bunden af ​​stakken med popd. For at fjerne den sidste mappe fra stakken, skriver vi:

popd -0

Det

~/Music-mappen fjernes fra den sidste position i stakken.

  Sådan sikrer du en Linux-installation: Det grundlæggende

For at ændre mappen skal du gøre noget og derefter hoppe tilbage til den forrige mappe, du kan bruge pushd og popd sammen.

Vi bruger pushd til at flytte til en anden mappe. Vi bruger popd til at kassere den øverste mappe i stakken og flytte til mappen i den anden position. Dette er den mappe, du lige er flyttet ud af, så du falder tilbage til den mappe, du oprindeligt var i.

Vi skriver følgende:

pushd ~
popd

Det

Vi startede i mappen ~/Projects, skubbede til hjemmemappen og gik derefter tilbage til mappen ~/Projects.

Roterer gennem hele stakken

Vi skal illustrere, hvordan man roterer gennem en stak med nogle indlejrede mapper, men du kan bruge alle mapper hvor som helst i filsystemet.

Vores dybeste niveau af rede er:

/home/dave/Projects/htg/articles

Fra hjemmebiblioteket går vi gradvist ned gennem hver mappe, indtil vi når til kataloget med artikler. Derefter vil vi se på mappestakken.

Vi skriver følgende:

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

Det

Når du gentagne gange udsteder pushd +1-kommandoer, kan du cykle rundt og rundt gennem stakken af ​​mapper. Hvis du gør dette ofte, ville pushd +1 være en god kandidat til et alias.

Indtast følgende:

pushd +1

Det

Stempling over stakken

Det er nemt at vende tilbage til gamle vaner og bruge cd til at skifte mappe. Hvis du gør det, vil du stemple den første mappe i stakken. Dette er uundgåeligt, da den første plads er reserveret til den aktuelle arbejdsmappe – ingen af ​​de andre ændrer position.

For at gøre dette skal du skrive følgende:

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

Det

Når du har vænnet dig til pushd- og popd-kommandoerne (og måske bruger dem til at oprette et par aliaser), har du en superhurtig måde at hoppe mellem mapper på.

Det er derfor, vi hænger rundt på kommandolinjen. Effektivitet stener, ikke?