#pushd and #popd command in linux | what is #directory #stack
Оглавление:
pushd
и
popd
- это команды, которые позволяют вам работать со стеком каталогов и изменять текущий рабочий каталог в Linux и других Unix-подобных операционных системах. Хотя
pushd
и
popd
являются очень мощными и полезными командами, они недооцениваются и используются редко.
В этом руководстве мы покажем вам, как использовать команды
pushd
и
popd
для навигации по дереву каталогов вашей системы.
Стек каталогов
Стек каталогов представляет собой список каталогов, к которым вы ранее обращались. Содержимое стека каталогов можно увидеть с помощью команды
dirs
. Каталоги добавляются в стек при переходе в каталог с помощью команды
pushd
и удаляются с
popd
команды
popd
.
Текущий рабочий каталог всегда находится на вершине стека каталогов. Текущий рабочий каталог - это каталог (папка), в котором в данный момент работает пользователь. Каждый раз, когда вы взаимодействуете с командной строкой, вы работаете в каталоге.
Команда
pwd
позволяет вам узнать, в каком каталоге вы сейчас находитесь.
При навигации по файловой системе используйте клавишу
Tab
для автозаполнения имен каталогов. Добавление косой черты в конце имени каталога не является обязательным.
pushd
,
popd
и
dirs
- встроенные функции оболочки, и их поведение может немного отличаться от оболочки к оболочке. Мы рассмотрим встроенную версию команд Bash.
Команда
pushd
Синтаксис команды
pushd
следующий:
pushd
Например, чтобы сохранить текущий каталог в верхней части стека каталогов и изменить его на
/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
При подсчете сверху вниз (или слева направо) индекс каталога равен
2
.
pushd +2
При подсчете снизу вверх индекс каталога
/var/www
равен
1
.
pushd -1.
Когда используется без каких-либо аргументов,
pushd
переключит две верхние директории и сделает новую вершину текущей директорией. Это то же самое, что и при использовании команды
cd -
.
popd
Команда
popd
принимает форму:
popd
При использовании без аргументов
popd
удаляет верхний каталог из стека и переходит в новый верхний каталог.
Допустим, у нас есть следующий стек каталогов:
/opt /usr/local /var/www /etc/nginx ~
/opt$ popd
Вывод покажет новый стек каталогов:
/usr/local /var/www /etc/nginx ~
Опция
-n
подавляет изменение каталога по умолчанию и удаляет второй элемент из стека:
/opt$ popd -n
/usr/local /etc/nginx ~
Как и
pushd
,
popd
также принимает параметры
+N
и
-N
, которые можно использовать для удаления
Nth
каталога стека.
/opt$ popd +1
Вывод
Обычно вы используете команду
cd
для перехода из одного каталога в другой. Однако, если вы проводите много времени в командной строке, команды
pushd
и
popd
повысят вашу производительность и эффективность.
Основные команды Linux
Знание того, как использовать командную строку, может быть очень полезным. В этой статье мы рассмотрим некоторые из наиболее распространенных команд Linux, которые ежедневно используются системными администраторами Linux.
Ду команды в Linux
Команда du, сокращение от использования диска, сообщает о приблизительном объеме дискового пространства, используемого данными файлами или каталогами. Это практически полезно для поиска файлов и каталогов, занимающих много места на диске.
Как проверить дисковое пространство в Linux с помощью команды df
Сколько места осталось на моем жестком диске? В системах на основе Linux вы можете использовать команду df, чтобы получить подробный отчет об использовании дискового пространства системы.







