Как использовать команды Pushd и Popd в Linux

12 set 2022 2 min di lettura
Как использовать команды Pushd и Popd в Linux
Indice dei contenuti

Введение

pushd и popd — это команды, позволяющие работать со стеком каталогов и изменять текущий рабочий каталог в Linux и других Unix-подобных операционных системах.

В этом руководстве мы покажем вам, как использовать команды pushd и popd для навигации по дереву системных каталогов.

Стек каталогов

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

Текущий рабочий каталог всегда находится наверху стека каталогов. Текущий рабочий каталог — это каталог (папка), в котором в данный момент работает пользователь. Всякий раз, когда вы взаимодействуете с командной строкой, вы работаете в каталоге.

Команда pwd позволяет узнать, в каком каталоге вы сейчас находитесь.

При просмотре файловой системы используйте клавишу Tab для автоматического заполнения имен каталогов. Добавление косой черты к имени каталога необязательно.

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

Команда Pushd

Синтаксис команды pushd следующий:

pushd [OPTIONS] [DIRECTORY]

Например, чтобы сохранить текущий каталог в верхней части стека каталогов и изменить его на /var/www, введите:

pushd /var/www

В случае успеха приведенная выше команда печатает стек каталогов. ~ — это каталог, в котором мы запустили команду pushd. Символ тильды ~ означает «домашний каталог».

Вы должны получить выходное сообщение, подобное следующему:

/var/www ~

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

Добавим в стек еще один каталог:

pushd /opt

Вы должны получить выходное сообщение, подобное следующему:

/opt /var/www ~

Чтобы избежать изменения изменения каталога, используйте параметр -n. Например, чтобы добавить каталог /usr/local в стек, но без изменения текущего каталога, введите:

pushd -n /usr/local

Поскольку текущий каталог (который всегда находится вверху) не изменяется, каталог /usr/local добавляется как второй сверху стека.

Вы должны получить выходное сообщение, подобное следующему:

/opt /usr/local /var/www ~

pushd принимает два параметра + N и -N, которые позволяют вам перейти к N -му каталогу стека. Параметр + N заменяет N -й элемент списка стека, считая слева направо, начиная с нуля. Когда используется опция -N, направление счета справа налево.

Чтобы лучше проиллюстрировать параметры, давайте распечатаем текущий стек каталогов:

dirs -l -v

Вывод покажет индексированный список стека каталогов:

 0 /opt
 1 /usr/local
 2 /var/www
 3 /home/noviello

Если вы хотите перейти в каталог /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:

popd

Вывод покажет новый стек каталогов:

/usr/local /var/www /etc/nginx ~

Параметр -n отменяет изменение каталога по умолчанию и удаляет второй элемент из стека:

popd -n

Вы должны получить выходное сообщение, подобное следующему:

/usr/local /etc/nginx ~

Как и команда pushd, popd также принимает опции + N и -N, которые можно использовать для удаления N -го каталога стека.

popd +1

Вы должны получить выходное сообщение, подобное следующему:

/usr/local ~

Вывод

В этом уроке мы увидели, как использовать команды Pushd и Popd.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.