Оригинальный автор(ы) | Билл Джой |
---|---|
Разработчик(и) | Различные разработчики открытого и коммерческого ПО |
Операционная система | Unix , Unix-подобный , DOS , Windows , ReactOS |
Платформа | Кроссплатформенный |
Тип | Команда |
В вычислительной технике pushd
и popd
представляют собой пару команд , которые позволяют пользователям быстро переключаться между текущим и предыдущим каталогом при использовании командной строки. При вызове они используют стек каталогов для последовательного сохранения и извлечения каталогов, посещённых пользователем. [1] [2]
Они широко доступны в качестве встроенных команд во многих интерпретаторах командной строки , таких как 4DOS , Bash , [3] C shell , tcsh , Hamilton C shell , KornShell , cmd.exe и PowerShell , а также для различных операционных систем, включая как Windows , так и Unix-подобные системы.
Стек каталогов лежит в основе функций этих двух команд. Это массив путей, хранящихся как переменная среды в CLI, которую можно просмотреть с помощью команды dirs
в Unix или Get-Location -stack
PowerShell. Текущий рабочий каталог всегда находится наверху стека.
Команда pushd
('push directory') сохраняет текущий рабочий каталог в стеке, а затем изменяет рабочий каталог на новый путь, введенный пользователем. Если pushd
не указан аргумент пути , в Unix он вместо этого меняет местами два верхних каталога в стеке, что можно использовать для переключения между двумя каталогами.
Команда popd
удаляет (или «выталкивает», по аналогии со стеком) текущую запись пути из стека и возвращается к пути наверху стека в качестве нового рабочего каталога. [4] [5]
Первой оболочкой Unix, реализовавшей стек каталогов, была оболочка C Билла Джоя . [ требуется ссылка ] Синтаксис для помещения и извлечения каталогов по сути тот же, что используется сейчас. [6] [7]
Обе команды доступны в FreeCOM, интерфейсе командной строки FreeDOS . [8]
В Windows PowerShell pushd — это предопределенный псевдоним команды для Push-Location
командлета , а popd — это предопределенный псевдоним команды для Pop-Location
командлета. Оба служат в основном для той же цели, что и команды pushd
и popd
.
[пользователь@сервер /usr/ports] $ pushd /etc /etc /usr/ports [пользователь@сервер /etc] $ popd /usr/ports [пользователь@сервер /usr/ports] $
C:\Users\root> pushd C:\Users C:\Users> popd C:\Users\root>
@ echo off rem Этот пакетный файл удаляет все файлы .txt в указанном каталоге pushd %1 del *.txt popd echo Все текстовые файлы, удаленные в каталоге %1
pushd [путь | ..]
Аргументы:
path
Этот необязательный аргумент командной строки указывает каталог, который будет сделан текущим. В Unix, если path
не указано, путь наверху стека каталогов чередуется с тем, который находится ниже, что имеет эффект переключения между двумя каталогами. В Windows, если не указано, path
вместо этого выводятся все каталоги в стеке, за исключением текущего.попд