Како користити пусхд и попд на Линуку

Многи Линук људи никада нису чули за пусхд и попд, али они су ту одувек. Они такође могу драматично убрзати процес навигације директоријумима на командној линији. Провешћемо вас кроз како да их користите.

Шта су пусхд и попд?

Једна од иновација Билл Јои уграђен у његову 1978 Ц Схелл је био концепт стека директоријума и средства за манипулацију њиме: пусхд и попд. Имитација као најискренији облик ласкања, стек директоријума, пусхд и попд убрзо су уграђени у друге љуске (као што је Басх), па чак и друге оперативне системе.

Концепт стека је једноставан. Ставке се стављају на гомилу једна по једна, а најскорије додата ставка увек заузима горњу позицију. Када се ставке извуку из хрпе, уклањају се, редом, од врха надоле. Стогови ове природе се често називају Последњи ушао, први изашао (ЛИФО) редови.

Заправо, пусхд и попд су мало флексибилнији од овога, али ово је за сада добар модел који треба имати на уму.

Пошто говоримо о стеку директоријума, вероватно није изненађење да „д“ у пусхд и попд означава „директоријум“. Ове команде вам омогућавају да гурнете директоријуме у стек директоријума или их избаците из њега.

Али како нам то користи?

Како пусхд попуњава стек

Када користите пусхд, дешавају се следеће три ствари:

Директоријум мењате исто као да сте користили цд.
Име и путања директоријума се додају у стек.
Стек се приказује као листа директоријума раздвојених размаком.

У следећим примерима, приметите како стек директоријума расте са сваком новом пусхд командом. Такође имајте на уму да је врх гомиле лево – овде се појављују нови уноси.

  Како направити пресликавање екрана на Фире ТВ Стицк-у: Ултимативни водич

После прве пусхд команде, постоје два уноса у стеку: директоријум који сте напустили и онај у који сте прешли.

За наш пример, откуцавамо следеће:

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

Тхе

Последња команда пусхд вратила нас је у наш почетни директоријум, тако да су први и последњи уноси у стеку тилда (~), која представља наш почетни директоријум. Ово показује да, иако је директоријум већ у стеку, он ће бити поново додат за друге пусхд команде.

Имајте на уму и да је крајњи леви унос у стеку, који је последњи додат унос, ваш тренутни директоријум.

Дирс Цомманд

Можете користити команду дирс, као што је приказано испод, да прикажете стек директоријума:

dirs

Тхе

То не утиче на стек, само га приказује. Неке од опција које можете користити са пусхд односе се на позицију директоријума у ​​стеку.

Ако желите да видите нумеричку позицију сваког директоријума, можете користити опцију -в (вертикална) као што је приказано у наставку:

дирс -в

Тхе

Ако бисте радије видели написану путању до вашег матичног директоријума уместо тилде (~), додајте опцију -л (дуги формат), на следећи начин:

dirs -v -l

Тхе

Додавање директоријума у ​​стек

Као што смо видели, када користите наредбу пусхд, она ради три ствари: мења ваш директоријум, додаје нови директоријум у стог и приказује стек за вас. Можете користити опцију -н (без ротације) да додате директоријум у стог без промене тренутног директоријума.

Ево нашег стека директоријума:

dirs -v -l

Тхе

Сада ћемо користити наредбу пусхд са опцијом -н и проћи у директоријум /хоме/даве као параметар. Затим ћемо поново проверити стек директоријума.

  Пребацивач профила на основу окидача за звук, екран, ВиФи и још много тога [Android]

Укуцавамо следеће:

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

Тхе

Директоријум /хоме/даве је додат стеку у слот 1, што је друго место у стеку. Не може да заузме горњу позицију јер је нулти слот увек тренутни директоријум.

Нисмо напустили тренутни директоријум, ~/Видеос, тако да није ротиран на другу позицију у стеку.

Промена директоријума ротацијом стека

Можете да користите нумеричке параметре са пусхд да бисте прешли у било који директоријум у стеку, а стек се ротира када то урадите. Директоријум који сте изабрали да преместите тада постаје први унос у стеку.

Позивате се на директоријуме у стеку према броју њихове позиције. Можете бројати од врха или дна гомиле. За позитивне бројеве, као што је +3, бројите од врха; за негативне бројеве, као што је -2, бројите од дна.

Директоријум /хоме/даве/Доцументс је на позицији три. Можемо користити следећу команду да преместимо тај директоријум:

pushd +3

Тхе

Директоријуми у стеку изнад директоријума који смо изабрали се померају на дно стека. Наш изабрани директоријум сада заузима највишу позицију и ми смо премештени у тај директоријум.

Ако желимо да пређемо у директоријум на дну стека, можемо користити следећу команду:

pushd -0

Тхе

Последњи директоријум се помера у први слот, а сви остали се померају надоле у ​​стеку. Промењени смо у директоријум ~/Пицтурес.

Команда попд

Можете користити команду попд да уклоните директоријуме из стека.

Ако погледамо стек директоријума, можемо видети да је директоријум на позицији 1 /хоме/даве. Да бисмо ово уклонили из стека, уписујемо следеће да бисмо проследили број у попд:

dirs -v -l
popd +1

Тхе

Директоријум /хоме/даве је уклоњен, а они који су били испод њега у стеку су се померили за једно место горе.

  Како искористити дигиталне директне понуде на вашем Ксбок Сериес Кс|С

Баш као што можемо са пусхд-ом, можемо рачунати од дна стека са попд-ом. Да бисмо уклонили последњи директоријум из стека, куцамо:

popd -0

Тхе

~/Мусиц директоријум се уклања са последње позиције у стеку.

Да бисте променили директоријум, урадили нешто, а затим се вратили на претходни директоријум, можете користити пусхд и попд заједно.

Користићемо пусхд за прелазак у други директоријум. Користићемо попд да одбацимо највиши директоријум у стеку и пређемо на директоријум на другој позицији. Ово је директоријум из којег сте се управо иселили, тако да сте враћени у директоријум у коме сте првобитно били.

Укуцавамо следеће:

pushd ~
popd

Тхе

Почели смо у директоријуму ~/Пројецтс, гурнули у почетни директоријум, а затим се вратили у директоријум ~/Пројецтс.

Ротирање кроз цео стог

Илустроваћемо како да ротирате кроз стек са неким угнежђеним директоријумима, али можете користити било који директоријум било где у систему датотека.

Наш најдубљи ниво гнежђења је:

/home/dave/Projects/htg/articles

Из матичног директоријума, постепено ћемо се спуштати кроз сваки директоријум док не дођемо до директоријума чланака. Затим ћемо погледати стек директоријума.

Укуцавамо следеће:

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

Тхе

Када више пута издајете пусхд +1 команде, можете кружити кроз гомилу директоријума. Ако ово радите често, пусхд +1 би био добар кандидат за псеудоним.

Откуцајте следеће:

pushd +1

Тхе

Штампање преко хрпе

Лако је вратити се старим навикама и користити цд за промену директоријума. Ако то урадите, обележићете први директоријум у стеку. Ово је неизбежно, пошто је први слот резервисан за тренутни радни директоријум — ниједан други не мења позицију.

Да бисте то урадили, откуцајте следеће:

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

Тхе

Након што се навикнете на пусхд и попд команде (и, можда, користите их за креирање неколико алијаса), имаћете супербрз начин да прелазите између директоријума.

Због тога се мотамо око командне линије. Ефикасност је велика, зар не?