С bash есть ли способ нажать и вытолкнуть текущий рабочий каталог? Я пытался писать, bash;cd dir; ./dostuff;exit;
но текущий каталог сейчас dir
.
66
Есть pushd
иpopd
Bash будет хранить историю посещенных вами каталогов, вам просто нужно спросить. Bash хранит историю в стеке и использует команды pushd и popd для управления стеком.
Пример:
$ pwd; pushd /tmp; pwd; popd; pwd
/home/me
/tmp ~
/tmp
~
/home/me
pushd Saves the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories.
Вызов
bash
запускает новую подоболочку, которая имеет свой собственный ввод; ни одна из других команд не будет запущена, пока не завершится. Окружение команд, которые будут запускаться с паренами, также запустит новый подоболочек, но он будет запускать команды внутри него.источник
Если вам не нужно несколько уровней истории каталогов, вы также можете сделать:
По сравнению с
pushd
/popd
это имеет тот недостаток, что в случаеcd foo
неудачи вы попадете в неправильный каталог сcd -
.(Вероятно,
cd -
это более удобный внешний вид сценариев. «Вернемся туда, где я только что был».)источник
Я использую псевдоним для отслеживания изменений в моем каталоге, поэтому в «cd» я могу просто вернуться туда, где я использовал «cd.», Или вернуться назад, используя «cd ..» и т. Д .;
источник
..cd
Достаточно ли надежен псевдоним ? похоже, он удаляет только последние 10 элементов из стека.