Android

Команды pushd и popd в linux

#pushd and #popd command in linux | what is #directory #stack

#pushd and #popd command in linux | what is #directory #stack

Оглавление:

Anonim

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

/usr/local ~

Вывод

Обычно вы используете команду cd для перехода из одного каталога в другой. Однако, если вы проводите много времени в командной строке, команды pushd и popd повысят вашу производительность и эффективность.

терминал bash