Kaip naudoti pushd ir popd sistemoje Linux

Terminalo langas Ubuntu stiliaus Linux darbalaukyje.

Fatmawati Achmad Zaenuri / „Shutterstock“.



Daugelis Linux žmonių niekada negirdėjo apie |_+_| ir |_+_|, bet jie egzistuoja amžinai. Jie taip pat gali žymiai pagreitinti komandų eilutės katalogų naršymo procesą. Mes paaiškinsime, kaip juos naudoti.

Kas yra pushd ir popd?

Viena iš naujovių Bilas Džojus įtrauktas į jo 1978 m C apvalkalas buvo katalogų kamino sąvoka ir priemonės juo manipuliuoti: |_+_| ir |_+_|. Imitacija yra nuoširdžiausia meilikavimo forma, katalogų krūva, |_+_| ir |_+_| netrukus buvo įtraukti į kitus apvalkalus (pvz., „Bash“) ir net kitas operacines sistemas.





Kamino koncepcija yra paprasta. Elementai dedami į krūvą po vieną, o paskutinis pridėtas daiktas visada užima aukščiausią poziciją. Kai elementai paimami iš krūvos, jie pašalinami eilės tvarka nuo viršaus žemyn. Tokio pobūdžio krūvos dažnai vadinamos Paskutinis įėjimas, pirmasis išėjimas (LIFO) uodegos.

Tiesą sakant, |_+_| ir |_+_| yra šiek tiek lankstesni nei šis, tačiau tai yra geras modelis, kurį reikia nepamiršti dabar.



Kadangi kalbame apie katalogų krūvą, tikriausiai nenuostabu, kad d |_+_| ir |_+_| reiškia katalogą. Šios komandos leidžia perkelti katalogus į katalogų krūvą arba ištraukti juos iš jos.

Bet kuo tai mums naudinga?

Kaip stumdytas užpildo krūvą

Kai naudojate |_+_|, nutinka šie trys dalykai:



  • Katalogą keičiate taip pat, lyg naudotumėte |_+_|.
  • Katalogo pavadinimas ir kelias pridedami prie krūvos.
  • Krūvas rodomas kaip tarpais atskirtas katalogų sąrašas.

Tolesniuose pavyzdžiuose atkreipkite dėmesį, kaip katalogų krūva auga su kiekvienu nauju |_+_| komandą. Taip pat atkreipkite dėmesį, kad krūvos viršus yra kairėje – čia pasirodo nauji įrašai.

Skelbimas

Po pirmojo |_+_| komandą, krūvoje yra du įrašai: katalogas, kurį palikote, ir tas, į kurį persikėlėte.

Savo pavyzdyje įrašome taip:

pushd popd pushd popd pushd

Paskutinis |_+_| komanda grąžino mus į mūsų pagrindinį katalogą, todėl pirmasis ir paskutinis krūvos įrašai yra tildė (|_+_|), kuri reiškia mūsų namų katalogą. Tai rodo, kad nors katalogas jau yra krūvoje, jis bus vėl įtrauktas į kitus |_+_| komandas.

Taip pat atkreipkite dėmesį, kad kairėje pusėje esantis krūvos įrašas, kuris yra paskutinis pridėtas įrašas, yra jūsų dabartinis katalogas.

Režisierė komanda

Galite naudoti |_+_| komandą, kaip parodyta toliau, kad būtų rodomas katalogų krūvas:

popd

Tai neturi įtakos kaminui, o tik rodo jį. Kai kurias parinktis galite naudoti su |_+_| žr. katalogų vietą krūvoje.

Skelbimas

Jei norite matyti kiekvieno katalogo skaitinę padėtį, galite naudoti |_+_| (vertikali) parinktis, kaip parodyta toliau:

rež. -v

Jei norite, kad vietoj tildės (|_+_|) būtų nurodytas parašytas kelias į pagrindinį katalogą, pridėkite |_+_| (ilgo formato) parinktis, pvz.:

pushd

Katalogo pridėjimas prie kamino

Kaip matėme, kai naudojate |_+_| komandą, ji atlieka tris dalykus: pakeičia jūsų katalogą, prideda naują katalogą į krūvą ir rodo krūvą jums. Galite naudoti |_+_| (be pasukimo) parinktis, skirta įtraukti katalogą į krūvą nekeičiant dabartinio katalogo.

Štai mūsų katalogų krūva:

popd

Dabar naudosime |_+_| komandą su parinktimi -n ir pas |_+_| katalogą kaip parametrą. Tada dar kartą patikrinsime katalogų krūvą.

Įrašome taip:

pushd popd

|_+_| katalogas buvo įtrauktas į krūvą 1 lizde, kuris yra antroje vietoje. Jis negali užimti aukščiausios pozicijos, nes nulis visada yra dabartinis katalogas.

Mes nepalikome dabartinio katalogo |_+_|, todėl jis nebuvo pasuktas į kitą krūvos vietą.

Katalogo keitimas sukant krūvą

Skaitinius parametrus galite naudoti su |_+_| kad pereitumėte į bet kurį krūvos katalogą, o dėklas sukasi, kai tai darote. Tada katalogas, kurį pasirinkote perkelti, tampa pirmuoju krūvos įrašu.

Skelbimas

Jūs nurodote krūvoje esančius katalogus pagal jų pozicijos numerį. Galite skaičiuoti nuo krūvos viršaus arba apačios. Teigiamus skaičius, pvz., +3, skaičiuokite nuo viršaus; neigiamus skaičius, pvz., -2, skaičiuokite nuo apačios.

Katalogas /home/dave/Documents yra trečioje vietoje. Norėdami perkelti tą katalogą, galime naudoti šią komandą:

pushd

Virš mūsų pasirinkto katalogo esančios krūvos katalogai perkeliami į krūvos apačią. Mūsų pasirinktas katalogas dabar užima aukščiausią vietą ir esame perkelti į tą katalogą.

Jei norime pereiti į katalogą, esantį kamino apačioje, galime naudoti šią komandą:

cd

Paskutinis katalogas perkeliamas į pirmąjį lizdą, o visi kiti perkeliami į krūvą žemyn. Mes pakeisti į |_+_| katalogas.

Popd komanda

Galite naudoti |_+_| komandą, kad pašalintumėte katalogus iš kamino.

Skelbimas

Jei pažvelgsime į katalogų krūvą, pamatysime, kad 1 pozicijoje esantis katalogas yra |_+_|. Norėdami tai pašalinti iš krūvos, įvedami taip, kad skaičius būtų perduotas |_+_|:

pushd pushd

|_+_| katalogas buvo pašalintas, o tie, kurie buvo po juo krūvoje, pajudėjo viena vieta aukštyn.

Kaip mes galime su |_+_|, galime skaičiuoti nuo krūvos apačios su |_+_|. Norėdami pašalinti paskutinį katalogą iš kamino, įvedame:

pushd

|_+_| katalogas pašalinamas iš paskutinės krūvos padėties.

Norėdami pakeisti katalogą, ką nors padaryti ir grįžti į ankstesnį katalogą, galite naudoti |_+_| ir |_+_| kartu.

Skelbimas

Naudosime |_+_| norėdami pereiti į kitą katalogą. Naudosime |_+_| Norėdami atmesti aukščiausią krūvos katalogą ir pereiti į antroje pozicijoje esantį katalogą. Tai yra katalogas, iš kurio ką tik išsikraustėte, todėl būsite grąžinti į katalogą, kuriame buvote iš pradžių.

Įrašome taip:

~ pushd

Pradėjome |_+_| katalogas, |_+_| į namų katalogą, tada |_+_| atgal į |_+_| katalogas.

Sukasi per visą krūvą

Mes parodysime, kaip pasukti krūvą su kai kuriais įdėtais katalogais, tačiau galite naudoti bet kuriuos katalogus bet kurioje failų sistemos vietoje.

Mūsų giliausias lizdo lygis yra:

dirs

Iš pagrindinio katalogo laipsniškai eisime žemyn per kiekvieną katalogą, kol pasieksime straipsnių katalogą. Tada pažvelgsime į katalogų krūvą.

Įrašome taip:

pushd -v ~ -l

Kai pakartotinai išduodate |_+_| komandas, galite apsukti katalogų krūvą. Jei tai darysite dažnai, |_+_| būtų geras kandidatas į slapyvardis .

Įveskite:

pushd

SUSIJĘS: Kaip sukurti slapyvardžius ir apvalkalo funkcijas „Linux“.

Antspaudavimas per krūvą

Lengva grįžti prie senų įpročių ir naudoti |_+_| pakeisti katalogą. Jei tai padarysite, antspauduosite pirmąjį krūvos katalogą. Tai neišvengiama, nes pirmasis lizdas yra rezervuotas dabartiniam darbo katalogui – nė vienas iš kitų nekeičia padėties.

Norėdami tai padaryti, įveskite:

-n pushd /home/dave


Kai priprasite prie |_+_| ir |_+_| komandas (ir, galbūt, naudokite jas kurdami keletą slapyvardžių), turėsite itin greitą būdą pereiti tarp katalogų.

Štai kodėl mes sėdime aplink komandinę eilutę . Efektyvumas svyruoja, tiesa?

SUSIJĘS: 37 svarbios „Linux“ komandos, kurias turėtumėte žinoti

Linux komandos
Failai deguto · pv · katė · tac · chmod · sukibimas · skirt · sed · Su · vyras · pastūmėtas · popd · fsck · testinis diskas · sek · fd · pandoc · CD · $PATH · awk · prisijungti · jq · sulankstyti · unikalus · Journalctl · uodega · valstybė · ls · fstab · išmetė · mažiau · chgrp · chown · rev · žiūrėk · stygos · tipo · pervadinti · užtrauktukas · išpakuokite · kalnas · umount · diegti · fdisk · mkfs · rm · rmdir · rsync · df · gpg · mes · nano · mkdir · · ln · pleistras · Paversti · rclone · susmulkinti · SRM
Procesai slapyvardis · ekranas · viršuje · malonu · renicija · progresas · trasa · sistema · tmux · chsh · istorija · adresu · partija · Laisvas · kurios · dmesg · usermod · ps · chroot · xargs · tty · rausvas · lsof · vmstat · laikas baigėsi · siena · taip · nužudyti · miegoti · sudo · jo · laikas · sugrupuoti · usermod · grupėse · lshw · išjungti · paleisti iš naujo · sustabdyti · išjungti · passwd · lscpu · crontab · data · bg · fg
Tinklo kūrimas netstat · ping · traceroute · ip · ss · Kas yra · fail2ban · bmon · tu · pirštu · nmap · ftp · garbanoti · wget · PSO · kas aš esu · Į · iptables · ssh-keygen · ufw

SUSIJĘS: Geriausi Linux nešiojamieji kompiuteriai kūrėjams ir entuziastams

SKAITYTI KITAS Dave Dave'as McKay'us
Dave'as McKay'us pirmą kartą naudojo kompiuterius, kai buvo madinga perforuoto popieriaus juosta, ir nuo tada jis programuoja. Daugiau nei 30 metų IT pramonėje jis dabar yra visą darbo dieną dirbantis technologijų žurnalistas. Per savo karjerą jis dirbo laisvai samdomu programuotoju, tarptautinės programinės įrangos kūrimo komandos vadovu, IT paslaugų projektų vadovu, o pastaruoju metu – duomenų apsaugos pareigūnu. Jo raštą paskelbė howtogeek.com, cloudsavvyit.com, itenterpriser.com ir opensource.com. Dave'as yra Linux evangelistas ir atvirojo kodo advokatas.
Skaityti visą biografiją

Įdomios Straipsniai