Как да използвате pushd и popd в Linux

Много хора на Linux никога не са чували за pushd и popd, но те съществуват завинаги. Те могат също така драстично да ускорят процеса на навигация в директории в командния ред. Ще ви преведем как да ги използвате.

Какви са в обратен ред и Превърта стека?

Едно от нововъведенията Бил Джой включена в него през 1978 г С Shell беше концепцията за стека на директории и средствата за манипулирането му: pushd и popd. Имитация е най-искрените форма на ласкателство, стека на директориите, в обратен ред, а Превърта стека скоро са включени в други обвивки (като Bash) и дори други операционни системи.

Концепцията за стека е проста. Елементите се поставят на стека един по един, като най-скоро добавеният елемент винаги заема горната позиция. Когато елементите се извличат от стека, те се премахват по ред отгоре надолу. Стекове от това естество често се наричат Последно, пръв излязъл (LIFO) опашки.

Всъщност pushd и popd са малко по-гъвкави от това, но това е добър модел, който трябва да имате предвид засега.

Тъй като имаме предвид стек от директории, вероятно не е изненада, че „d“ в pushd и popd означава „директория“. Тези команди ви позволяват да натискате директории в стека на директории или да ги изваждате от него.

Но как се отразява това обезщетение нас?

Как pushd запълва стека

Когато използвате pushd, се случват следните три неща:

Сменяте директорията по същия начин, както ако сте използвали cd.
Името и пътят на директорията се добавят към стека.
Стекът се показва като разделен с интервал списък с директории.

  Как да инсталирате Wine Staging на Linux

В следващите примери забележете как стекът от директории нараства с всяка нова команда pushd. Също така имайте предвид, че горната част на стека е отляво – тук се появяват новите записи.

След първата команда pushd има два записа в стека: директорията, която сте оставили, и тази, в която сте се преместили.

За нашия пример въвеждаме следното:

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

В

Последният в обратен ред командата взеха ни подкрепят в нашия дом директория, така че първата и последната записите в тестето са тилда (~), което представлява нашата домашна директория. Това показва, че въпреки че една директория вече е в стека, тя ще бъде добавена отново за други команди pushd.

Забележете също, че най-левият запис в стека, който е последният добавен запис, е текущата ви директория.

В папките с командване

Можете да използвате командата dirs, както е показано по-долу, за да покажете стека на директории:

dirs

В

Това не засяга стека, просто го показва. Някои от опциите, които можете да използвате с pushd, се отнасят до позицията на директориите в стека.

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

директории-V

В

Ако предпочитате да видите изписания път към вашата домашна директория вместо тилдата (~), добавете опцията -l (дълъг формат) по следния начин:

dirs -v -l

В

Добавяне на директория към стека

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

Тук е нашата директория комин:

dirs -v -l

В

Сега ще използваме командата pushd с опцията -n и ще преминем в директорията /home/dave като параметър. След това отново ще проверим стека от директории.

  Как да изпращате съобщения с биткойн блокчейн на Linux с помощта на Bitmessage

Ние въведете следното:

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

В

Директорията /home/dave беше добавена към стека в слот 1, което е второто място в стека. Не може да заеме горната позиция, защото нулата на слота винаги е текущата директория.

Не напуснахме текущата директория ~/Videos, така че не беше завъртяна на друга позиция в стека.

Промяна на директория чрез завъртане на стека

Можете да използвате числови параметри с pushd, за да се придвижите до всяка директория в стека и стекът се върти, когато го направите. След това директорията, която сте избрали да преместите, става първият запис в стека.

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

Директорията /home/dave/Documents е на позиция три. Можем да използваме следната команда, за да преместим тази директория:

pushd +3

В

Директориите в стека над директорията, която сме избрали, се преместват в долната част на стека. Избраната от нас директория сега заема горната позиция и ние сме преместени в тази директория.

Ако искаме да преминем в директорията в долната част на стека, можем да използваме следната команда:

pushd -0

В

Последната директория се премества в първия слот, а всички останали се преместват надолу в стека. Ние сме променени в директорията ~/Pictures.

В POPd Command

Можете да използвате командата popd, за да премахнете директории от стека.

Ако погледнем стека от директории, можем да видим, че директорията на позиция 1 е /home/dave. За да премахнем това от стека, въвеждаме следното, за да предадем номера на popd:

dirs -v -l
popd +1

В

Директорията /home/dave беше премахната и тези, които бяха под нея в стека, се преместиха с едно място нагоре.

Точно както можем с pushd, можем да броим от дъното на стека с popd. За да премахнем последната директория от стека, ние въвеждаме:

popd -0

В

Директорията ~/Music се премахва от последната позиция в стека.

  Как да инсталирате темата за икони Moka на Linux

За да промените директорията, да направите нещо и след това да се върнете към предишната директория, можете да използвате pushd и popd заедно.

Ще използваме pushd, за да се преместим в друга директория. Ще използваме popd, за да изхвърлим най-горната директория в стека и да преминем към директорията на втора позиция. Това е директорията, от която току-що сте се преместили, така че сте върнати обратно в директорията, в която сте били първоначално.

Ние въведете следното:

pushd ~
popd

В

Започнахме в директорията ~/Projects, натиснахме до началната директория и след това изскочихме обратно в директорията ~/Projects.

Въртене през целия стек

Отиваме да илюстрират как да се върти през комин с някои вложени директории, но бихте могли да използвате директории навсякъде по файловата система.

Най-дълбокото ни ниво на гнездене е:

/home/dave/Projects/htg/articles

От началната директория постепенно ще се спускаме през всяка директория, докато стигнем до директорията със статии. След това ще разгледаме стека на директории.

Ние въведете следното:

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

В

Когато многократно издавате команди pushd +1, можете да обикаляте и обикаляте през стека от директории. Ако правите това често, pushd +1 би бил добър кандидат за псевдоним.

Въведете следната:

pushd +1

В

Stamping купа

Лесно е да се върнете към старите навици и да използвате cd за промяна на директорията. Ако направите това, ще поставите печат върху първата директория в стека. Това е неизбежно, тъй като първият слот е запазен за текущата работна директория – никой от другите не променя позицията.

За да направите това, напишете следното:

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

В

След като свикнете с обратен ред и POPd команди (и, може би, да ги използват, за да се създадат няколко псевдоними), ще имате супер-бърз начин да хоп между директории.

Ето защо се мотаем около командния ред. Ефективността е скали, нали?