Команды pushd и popd. Linux статьи
Поддержать проект

Команды pushd и popd

0

Команды pushd и popd

При работе в командной строке Linux для перехода в другую директорию используется команда cd.

Для вывода текущей рабочей директории используется команда pwd.

Команда pushd

Когда требуется работа с несколькими директориями, то использование только cd может быть не очень удобно. Здесь приходит на помощь команда pushd

Команда pushd создает стек директорий (папок).

Стек это просто список (ну почти). Команда pushd создает список папок (список путей). Стек обладает таким свойством, что то, что в него помещается последним, должно его первым и покинуть. Его можно сравнить со стаканом, в который мы кладем кружочки. Кружочек, который положили последним (он на вершине стека), должен первым покинуть стакан, чтобы получить доступ к следующему кружочку. Также и в стеке.

Чтобы добавить произвольную директорию в стек (и сразу же в нее перейти), то нужно дополнительно указать путь до этой директории (символ тильда ~ в путях в Linux означает домашнюю директорию пользователя):

pushd ~/MyData

После выполнения команды, через пробел выводятся директории, находящиеся в стеке.

$ pushd ~/MyData
~/MyData ~/Downloads ~

Важное замечание: На вершине стека всегда размещена текущая директория. То есть, даже если вы не добавляли никаких директорий в стек, то в нем все равно будет содержаться текущая рабочая директория.

Для более удобного просмотра стека можно использовать команду dirs -v

$ dirs -v
0 ~/MyData
1 ~/Downloads
2 ~

Быстрый переход к произвольной директории в стеке

Как видно из вывода команды dirs -v, все папки в стеке пронумерованы. Эти номера можно использовать для быстрого перехода к соответствующей директории.

Перейдем к директории с индексом 2:

cd ~2

Команда popd

Пользователь всегда находится в той директории, которая в текущей момент расположена на вершине стека.

Чтобы извлечь директорию с вершины стека и перейти в директорию, которая окажется следующей (станет вершиной стека), используется команда popd

Вот как это работает:

# Стек пустой (в нем только текущая директория)
$ dirs -v
0 ~

# Помещаем в стек директории dir1, dir2, dir3
$ pushd ~/dir1
~/dir1 ~
$ pushd ~/dir2
~/dir2 ~/dir1 ~
$ pushd ~/dir3
~/dir3 ~/dir2 ~/dir1 ~

# Стек выглядит следующим образом
$ dirs -v
0 ~/dir3
1 ~/dir2
2 ~/dir1
3 ~

# Извлекаем директорию dir3 из стека
# и попадаем в директорию dir2 (она стала вершиной)
$ popd
~/dir2 ~/dir1 ~

# Извлекаем dir2, попадаем в dir1
$ popd
~/dir1 ~

# Извлекаем dir1, попадаем в ~
$ popd
~

Использование команд pushd popd

Еще пара трюков

Удалить из стека

Чтобы удалить директорию из стека (сама директория, конечно, не удаляется) используется следующая команда. Вместо 3 укажите индекс директории, которую нужно убрать из стека.

popd +3

Переключение туда и обратно

Если выполнять команду pushd без параметров, то можно переключаться между двумя верхними директориями в стеке. Происходит переключение туда и обратно между верхними директориями, остальная часть стека не меняется.

Примечание: Состояние стека хранится только в рамках текущей сессии терминала.

Заключение

Команды pushd, popd и cd помогают для быстрой навигации по директориям.

Мы рассмотрели базовые возможности команд pushd и popd. Дополнительную информацию по их использованию можно получить, выполнив:

pushd --help
popd --help
Войдите, чтобы ставить лайкимне нравится
Лайков: +7
войдите, чтобы ставить лайки
0
  • Опубликовано: 02.03.2020
  • yuriy

Комментарии

Комментариев пока не было.

Написать комментарий

Ваше имя:
Текст комментария: