Использование команд pushd и popd в Linux
Оптимизация навигации в Linux
Навигация по каталогам на вашем сервере AvaHost Linux только что стала проще! Команды и pushd — это мощные инструменты для перемещения по сложным структурам папок без потери информации о том, где вы были. Это руководство идеально подходит для системных администраторов, разработчиков и всех, кто работает в терминале Linux. Оно покажет вам, как использовать эти команды для повышения эффективности и поддержания плавности рабочего процесса. Давайте погрузимся в освоение навигации по каталогам с AvaHost!popd
Использование команд pushd и popd в Linux
Навигация по сложным структурам каталогов в терминале Linux может отнимать много времени, особенно при системном администрировании или написании сценариев. Хотя команда (изменить каталог) является основной командой для навигации по каталогам, но ей не хватает возможности управлять стеком каталогов — функция, которую предоставляют cd и pushd.popd
В этой статье мы подробно рассмотрим команды и pushd и покажем вам, как упростить навигацию по каталогам и сделать работу в терминале более эффективной.popd
Что такое pushd и popd?
pushd (push directory) сохраняет текущий каталог в стеке, а затем переключается на новый каталог.
popd (pop directory) удаляет верхний каталог из стека и возвращает вас к предыдущему.
Эти команды являются частью механизма стека каталогов, доступного в bash, zsh и других современных оболочках.
Когда их использовать
и pushd неоценимы, когда:popd
Вы часто перемещаетесь между двумя или более каталогами.
Вы пишете сценарии оболочки, которым нужно временно переключаться между каталогами.
Вы хотите избежать загрязнения оболочки ненужными командами cd и сохранить контекст.
Базовое использование
1. команда pushd
Перемещает текущий каталог в стек.
Изменяет каталог на /path/to/target.
🔁 Пример:
cd ~
pushd /var/www/htmlТеперь вы находитесь в каталоге /var/www/html, а ваш домашний каталог ~ хранится в стеке.
2. команда popd
Выбрасывает верхний каталог из стека.
Возвращает вас в предыдущий каталог.
Продолжение приведенного выше примера:
Вы вернулись в ~.
Работа со стеком каталогов
Используйте dirs для просмотра текущего состояния стека каталогов:
Пример вывода:
0 /var/www/html
1 /home/userИндекс 0 — это ваш текущий каталог.
Более высокие индексы представляют более ранние каталоги.
Толкать текущий каталог без переключения
Вы можете использовать:
для перемещения текущего каталога в стек без переключения каталогов.
Примеры реального мира
Пример 1: Переход между каталогами исходных текстов и сборки
pushd ~/projects/myapp/src
# Выполнить редактирование
pushd../build
make && make install
popd # Возврат в src
popd # Возврат в исходный каталогЭффективно для итеративной разработки без повторяющихся команд cd.
Пример 2: обертывание в сценарий оболочки
Вот сценарий, который собирает код во временной директории и возвращается обратно в чистом виде:
#!/bin/bash
pushd /tmp/build-env || exit 1
# Configure and build
cmake ~/projects/myproject
make -j$(nproc)
popdЕсли скрипт не выполнится внутри /tmp/build-env, вы все равно вернетесь в исходное местоположение.
Советы и лучшие практики
Используйте pushd вместо cd в сценариях
Это делает ваши скрипты более удобными для сопровождения, особенно при возникновении ошибок — вы можете безопасно вернуться в исходный каталог.
Комбинируйте с dirs -v для отладки стека
При работе с несколькими вызовами , pushd поможет отследить историю навигации.dirs -v
Использование индексов с помощью popd
Вы можете удалить определенный каталог из стека:


