push / pop текущий каталог?

With bash есть ли способ нажать и открыть текущий рабочий каталог? Я пытался писать bash;cd dir; ./dostuff;exit; но текущая директория теперь dir.

4
задан Nicolas Raoul
11.12.2022 22:06 Количество просмотров материала 2572
Распечатать страницу

4 ответа

здесь pushd и popd

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

больше читать

пример:

$ pwd; pushd /tmp; pwd; popd; pwd
/home/me
/tmp ~
/tmp
~
/home/me
75
отвечен Nifle 2022-12-13 05:54

вызов bash запускает новую ячейку, которая имеет свой собственный вход; ни одна из других команд не будет выполняться до ее выхода. Окружение команд, которые будут выполняться с parens, также запустит новую ячейку, но она будет запускать команды в ней.

( cd dir ; ./dostuff )
24
отвечен Ignacio Vazquez-Abrams 2022-12-13 08:11

Если вам не нужно несколько уровней истории каталога, вы также можете сделать:

cd foo
# do your stuff in foo
cd -

по сравнению с pushd/popd, это имеет тот недостаток, что если cd foo fails, вы в конечном итоге в неправильном каталоге с cd -.

(наверное cd - удобнее вне скриптов. "Давайте вернемся туда, где я только что был.")

9
отвечен tuomassalo 2022-12-13 10:28

Я использую псевдоним для отслеживания изменений моего каталога, так что " cd "где-то я могу просто вернуться туда, где я использовал" cd.', или вернуться на два используя 'cd..', п.;

alias pushdd="pushd $PWD > /dev/null"
alias cd='pushdd;cd'
alias ssh='ssh -A'
alias soc='source ~/.bashrc'
#below to go back to a previous directory (or more)
alias popdd='popd >/dev/null'
alias cd.='popdd'
alias cd..='popdd;popdd'
alias cd...='popdd;popdd;popdd'
alias cd....='popdd;popdd;popdd;popdd'
#below to remove directories from the stack only (do not 'cd' anywhere)
alias .cd='popd -n +0'
alias ..cd='popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0'
3
отвечен cdp 2022-12-13 12:45

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх