Jak korzystać z pushd i popd w systemie Linux

Wielu ludzi korzystających z Linuksa nigdy nie słyszało o pushd i popd, ale istnieją od zawsze. Mogą również znacznie przyspieszyć proces poruszania się po katalogach w wierszu poleceń. Pokażemy Ci, jak z nich korzystać.

Co to jest pushd i popd?

Jedna z innowacji Bill Joy włączone w jego 1978 C Shell była koncepcja stosu katalogów i sposobów manipulowania nim: pushd i popd. Imitacja jest najszczerszą formą pochlebstw, dlatego stos katalogów, pushd i popd zostały wkrótce włączone do innych powłok (takich jak Bash), a nawet do innych systemów operacyjnych.

Koncepcja stosu jest prosta. Przedmioty są umieszczane na stosie pojedynczo, przy czym ostatnio dodany przedmiot zawsze zajmuje najwyższą pozycję. Kiedy przedmioty są pobierane ze stosu, są one usuwane kolejno, od góry do dołu. Stosy tego rodzaju są często nazywane Ostatni wchodzi, pierwszy wychodzi (LIFO) kolejki.

W rzeczywistości pushd i popd są nieco bardziej elastyczne niż to, ale jest to dobry model, o którym na razie warto pamiętać.

Ponieważ mówimy o stosie katalogów, prawdopodobnie nie jest niespodzianką, że „d” w pushd i popd oznacza „katalog”. Te polecenia umożliwiają wypychanie katalogów na stos katalogów lub zdejmowanie ich ze stosu.

Ale jakie to daje nam korzyści?

Jak pushd zapełnia stos

Podczas korzystania z pushd zachodzą następujące trzy rzeczy:

Zmieniasz katalog tak samo, jakbyś używał cd.
Nazwa i ścieżka katalogu zostaną dodane do stosu.
Stos jest wyświetlany jako lista katalogów oddzielonych spacjami.

W poniższych przykładach zwróć uwagę, jak stos katalogów rośnie wraz z każdym nowym poleceniem pushd. Zwróć również uwagę, że góra stosu znajduje się po lewej stronie – w tym miejscu pojawiają się nowe wpisy.

Po pierwszym poleceniu pushd na stosie znajdują się dwie pozycje: katalog, który opuściłeś, i ten, do którego został przeniesiony.

W naszym przykładzie wpisujemy:

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

Plik

Ostatnie polecenie pushd zabrało nas z powrotem do naszego katalogu domowego, więc pierwszy i ostatni wpis na stosie to tylda (~), która reprezentuje nasz katalog domowy. To pokazuje, że chociaż katalog jest już na stosie, zostanie dodany ponownie dla innych poleceń pushd.

Zauważ również, że wpis znajdujący się najbardziej po lewej stronie stosu, który jest wpisem ostatnio dodanym, to twój bieżący katalog.

Dirs Command

Możesz użyć polecenia dirs, jak pokazano poniżej, aby wyświetlić stos katalogów:

dirs

Plik

Nie wpływa na stos, po prostu go wyświetla. Niektóre opcje, których możesz użyć z pushd, odnoszą się do pozycji katalogów na stosie.

Jeśli chcesz zobaczyć numeryczną pozycję każdego katalogu, możesz użyć opcji -v (pionowo), jak pokazano poniżej:

reż. -v

Plik

Jeśli wolisz zobaczyć przeliterowaną ścieżkę do swojego katalogu domowego zamiast tyldy (~), dodaj opcję -l (długi format), na przykład:

dirs -v -l

Plik

Dodawanie katalogu do stosu

Jak widzieliśmy, kiedy używasz polecenia pushd, robi ono trzy rzeczy: zmienia twój katalog, dodaje nowy katalog do stosu i wyświetla stos. Możesz użyć opcji -n (bez rotacji), aby dodać katalog do stosu bez zmiany bieżącego katalogu.

Oto nasz stos katalogów:

dirs -v -l

Plik

Teraz użyjemy polecenia pushd z opcją -n i pas w katalogu / home / dave jako parametru. Następnie ponownie sprawdzimy stos katalogów.

Wpisujemy:

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

Plik

Katalog / home / dave został dodany do stosu w slocie 1, który jest drugim miejscem w stosie. Nie może zajmować najwyższej pozycji, ponieważ gniazdo zerowe jest zawsze katalogiem bieżącym.

Nie opuściliśmy bieżącego katalogu ~ / Videos, więc nie został on przeniesiony na inną pozycję w stosie.

Zmiana katalogu poprzez obracanie stosu

Możesz użyć parametrów numerycznych z pushd, aby przejść do dowolnego katalogu na stosie, a stos obraca się, gdy to zrobisz. Katalog, który wybrałeś do przeniesienia, staje się wtedy pierwszym wpisem na stosie.

Odwołujesz się do katalogów na stosie przez ich numer pozycji. Możesz liczyć od góry lub od dołu stosu. W przypadku liczb dodatnich, takich jak +3, licz od góry; dla liczb ujemnych, takich jak -2, licz od dołu.

Katalog / home / dave / Documents znajduje się na trzeciej pozycji. Aby przenieść ten katalog, możemy użyć następującego polecenia:

pushd +3

Plik

Katalogi ze stosu powyżej wybranego przez nas katalogu są przenoszone na dół stosu. Nasz wybrany katalog zajmuje teraz najwyższą pozycję i zostajemy przeniesieni do tego katalogu.

Jeśli chcemy przejść do katalogu na dole stosu, możemy użyć następującego polecenia:

pushd -0

Plik

Ostatni katalog jest przenoszony do pierwszego miejsca, a wszystkie pozostałe są przenoszone w dół stosu. Przeszliśmy do katalogu ~ / Pictures.

Polecenie popd

Możesz użyć polecenia popd, aby usunąć katalogi ze stosu.

Jeśli spojrzymy na stos katalogów, zobaczymy, że katalog na pozycji 1 to / home / dave. Aby usunąć to ze stosu, wpisujemy następującą liczbę, aby przekazać liczbę do popd:

dirs -v -l
popd +1

Plik

Katalog / home / dave został usunięty, a te, które znajdowały się pod nim w stosie, zostały przeniesione o jedno miejsce w górę.

Tak jak w przypadku pushd, możemy liczyć od dołu stosu za pomocą popd. Aby usunąć ostatni katalog ze stosu, wpisujemy:

popd -0

Plik

Katalog ~ / Music jest usuwany z ostatniej pozycji w stosie.

Aby zmienić katalog, zrób coś, a następnie wróć do poprzedniego katalogu, możesz użyć razem pushd i popd.

Użyjemy pushd, aby przejść do innego katalogu. Użyjemy popd, aby odrzucić najwyższy katalog ze stosu i przejść do katalogu na drugiej pozycji. To jest katalog, z którego właśnie się wyprowadziłeś, więc wrócisz do katalogu, w którym byłeś pierwotnie.

Wpisujemy:

pushd ~
popd

Plik

Zaczęliśmy od katalogu ~ / Projects, wypchnęliśmy do katalogu domowego, a następnie wróciliśmy do katalogu ~ / Projects.

Obracanie całego stosu

Zamierzamy zilustrować, jak obracać stos z niektórymi zagnieżdżonymi katalogami, ale możesz użyć dowolnego katalogu w dowolnym miejscu w systemie plików.

Nasz najgłębszy poziom zagnieżdżania to:

/home/dave/Projects/htg/articles

Z katalogu domowego będziemy stopniowo przechodzić przez każdy katalog, aż dotrzemy do katalogu artykułów. Następnie przyjrzymy się stosowi katalogów.

Wpisujemy:

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

Plik

Kiedy wielokrotnie wydajesz polecenia pushd +1, możesz przełączać się w kółko po stosie katalogów. Jeśli robisz to często, pushd +1 byłby dobrym kandydatem na alias.

Wpisz następujące informacje:

pushd +1

Plik

Tłoczenie na stosie

Łatwo jest wrócić do starych nawyków i zmienić katalog za pomocą cd. Jeśli to zrobisz, nadepniesz na pierwszy katalog w stosie. Jest to nieuniknione, ponieważ pierwszy slot jest zarezerwowany dla bieżącego katalogu roboczego – żaden z pozostałych nie zmienia pozycji.

Aby to zrobić, wpisz:

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

Plik

Gdy przyzwyczaisz się do poleceń pushd i popd (i być może użyjesz ich do stworzenia kilku aliasów), będziesz mieć superszybki sposób na przeskakiwanie między katalogami.

Właśnie dlatego kręcimy się po linii poleceń. Wydajność rządzi, prawda?