Команды pushd и popd позволяют работать со стеками каталогов в Linux и Unix-подобных операционных системах. Они используются для добавления и удаления каталогов из стека каталогов. Буква «d» в pushd и popd обозначает каталог (directory).
Концепция стеков проста. Стек каталогов представляет собой очередь «последним вошел — первым ушел» (LIFO). После выполнения каждой команды popd размер стека каталогов уменьшается.
Из этой статьи Вы узнаете, как использовать команды pushd и popd для навигации по дереву каталогов Linux.
Команда pushd принимает следующий синтаксис:
$ pushd [ОПЦИИ] [КАТАЛОГ]
Ниже приведены примеры использования команды pushd.
Команда pushd используется для добавления каталогов в стек дерева каталогов. Приведенная ниже команда добавляет каталог Music в стек.
$ pushd ~/Music
Как показано на изображении ниже, каталог Music теперь становится текущим рабочим каталогом.
Чтобы просмотреть стек каталогов, запустите:
$ dirs -l -v
Когда вы добавляете каталоги в стек, последний добавленный каталог будет вверху стека.
Когда вы выполняете команду pushd, текущий каталог изменяется на тот, который вы указали. Чтобы добавить новый каталог, не изменяя текущий каталог, используйте параметр -n.
Когда вы выполните команду, каталог теперь будет на второй позиции в стеке.
Используйте параметр -n вместе с каталогом, который вы хотите добавить, как показано в синтаксисе ниже.
$ pushd -n каталог
Команда pushd принимает числовые параметры. Это позволяет вам перейти в n-й каталог в стеке. Параметр + n начинается с вершины стека, и каталог в n-й позиции теперь станет текущим каталогом.
Команда popd устанавливает в качестве текущего каталога каталог, который был недавно сохранен командой pushd. Каждый раз, когда вы вызываете команду pushd, сохраняется каталог.
Команда Popd использует синтаксис ниже
$ popd [ОПЦИИ] [КАТАЛОГ]
Сама по себе команда popd позволяет удалить каталог в верхней части стека каталогов. После выполнения команды второй каталог сверху становится текущим каталогом.
Для просмотра стека каталогов используйте команду:
$ dirs -l -v
Затем запустите команду popd:
$ popd
Команда popd и опция -n могут удалить каталог в стеке без изменения текущего каталога.
Когда вы выполняете команду popd -n, каталог во второй позиции от вершины вашего стека удаляется.
$ popd -n
Вы можете удалить каталог в n-й позиции. Числовой параметр передается вместе с командой popd.
Синтаксис:
$ popd +n $ popd -n
Когда вы выполняете команду popd + n, каталог в n-й позиции сверху стека удаляется. Параметр -n удаляет каталог в n-й позиции, начиная с нижней части стека.
Опция -0 позволяет удалить последний каталог в стеке. Выполните команду ниже:
$ popd -0
Как вы заметили, команды pushd и popd полезны при переходе из одного каталога в другой. Когда вы привыкнете к этой команде, у вас будет более быстрый и эффективный способ навигации по каталогам в Linux.