Команды Pushd и Popd в Linux
Команды Pushd и Popd в Linux
В этом руководстве мы покажем вам , как использовать pushd
и popd
команды для перемещения дерева каталогов вашей системы.

pushd
и popd -
это команды, которые позволяют вам работать со стеком каталогов и изменять текущий рабочий каталог в Linux и других Unix-подобных операционных системах. Хотя pushd
и popd
являются очень мощными и полезными командами, они недооценены и используются редко.
Стек каталогов
Стек каталогов представляет собой список каталогов, к которым вы ранее обращались. Содержимое стека каталогов можно увидеть с помощью dirs
команды. Каталоги добавляются в стек при переходе в каталог с помощью pushd
команды и удаляются с помощью popd
команды.
Текущий рабочий каталог всегда находится на вершине стека каталогов. Текущий рабочий каталог является каталогом (папка) , в котором пользователь в настоящее время работает в. Каждый раз , когда вы взаимодействуете с командной строкой, вы работаете в директории.
Команда pwd
позволяет узнать, в каком каталоге вы сейчас находитесь.
При навигации по файловой системе используйте Tab
клавишу для автозаполнения имен каталогов. Добавление косой черты в конце имени каталога не является обязательным.
pushd
, popd
И dirs
являются оболочками встроенных функций , и его поведение может слегка отличаться от оболочки к оболочке. Мы рассмотрим встроенную версию команд Bash.
pushd
команда
Синтаксис для pushd
команды следующий:
pushd [OPTIONS] [DIRECTORY]
Например, чтобы сохранить текущий каталог в верхней части стека каталогов и перейти к нему /var/www
, введите:
~$ pushd /var/www
В случае успеха указанная выше команда напечатает стек каталогов. ~
каталог, в котором мы выполнили pushd
команду. Символ тильды ~
означает домашний каталог.
/var/www ~
pushd
сначала сохраняет текущий рабочий каталог в верхнюю часть стека, а затем переходит к указанному каталогу. Поскольку текущий каталог всегда должен быть на вершине стека, после изменения новый текущий каталог попадает на вершину стека, но не сохраняется в стеке. Чтобы сохранить его, вы должны вызвать pushd
его. Если вы используете cd
для перехода в другой каталог, верхний элемент стека будет потерян,
Давайте добавим еще один каталог в стек:
/var/www$ pushd /opt
/opt /var/www ~
Чтобы отменить изменение по умолчанию для каталога, используйте -n
параметр. Например, чтобы добавить /usr/local
каталог в стек, но не переходить в него, введите:
/opt$ pushd -n /usr/local
Поскольку текущий каталог (который всегда находится вверху) не изменяется, /usr/local
каталог добавляется вторым от вершины стека:
/opt /usr/local /var/www ~
Принимает два варианта,
pushd +N
и -N
что позволяет перемещаться в Nth
директории стека. В +N
опции изменения Nth
элемент списка подсчета стека слева направо, начиная с нуля. Когда -N
используется направление счета справа налево.
Чтобы лучше проиллюстрировать параметры, давайте напечатаем текущий стек каталогов:
/opt$ dirs -l -v
Вывод покажет индексированный список стека каталогов:
0 /opt
1 /usr/local
2 /var/www
3 /home/linuxize
Если вы хотите перейти на /var/www
каталог и поместить его на вершину стека, вы будете использовать один из следующих.
При подсчете сверху вниз (или слева направо) индекс каталога равен 2
.
pushd +2
При подсчете снизу вверх индекс /var/www
каталога равен 1
.
pushd -1.
При использовании без каких-либо аргументов pushd
переключает две верхние директории и делает новую вершину текущей. Это то же самое, что и при использовании cd -
команды.
popd
команда
Команда popd
принимает форму:
popd [OPTIONS]
При использовании без аргументов popd
удаляет верхний каталог из стека и переходит в новый верхний каталог.
Допустим, у нас есть следующий стек каталогов:
/opt /usr/local /var/www /etc/nginx ~
Если вы запустите popd
команду, она удалит /opt
из стека и перейдет в /usr/local
каталог:
/opt$ popd
Вывод покажет новый стек каталогов:
/usr/local /var/www /etc/nginx ~
Опция подавляет изменение каталога по умолчанию и удаляет второй элемент из стека:
-n
/opt$ popd -n
/usr/local /etc/nginx ~
Также как pushd
, popd
также принимает параметры +N
и -N
, которые можно использовать для удаления Nth
каталога из стека.
/opt$ popd +1
/usr/local ~
Вывод
Обычно вы используете cd
команду для перемещения из одного каталога в другой. Тем не менее, если вы проводите много времени в командной строке, pushd
и popd
команды повысят вашу производительность и эффективность.
Комментарии
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.