Как при использовании popd
поместить текущий каталог в стек?
решение1
$ pwd; pushd /tmp; pwd; popd; pwd
/home/users/foo
/tmp ~
/tmp
~
/home/users/foo
Bash сохранит историю каталогов, которые вы посещаете, вам просто нужно попросить. Bash хранит историю в стеке и использует команды pushd и popd для управления стеком.
Если вам не нужны несколько уровней истории каталога, вы также можете сделать:
cd foo
# do your stuff in foo
cd -
По сравнению с pushd
/ popd
, этот вариант имеет тот недостаток cd foo
, что в случае сбоя вы попадете в неправильный каталог с cd -
.
(Вероятно, cd -
это более удобно вне сценариев. «Давайте вернемся туда, где я только что был».)
ВидетьИспользуйте pushd и popd для управления стеком каталоговдля получения дополнительной помощи.
решение2
Это должно быть просто
[$]> pushd .
нет?
решение3
pushd -n $(pwd)
добавляет текущий каталог $(pwd)
в стек без изменения каталога.
Из help pushd
bash:
Параметры:
-n
Подавляет обычное изменение каталога при добавлении каталогов в стек, поэтому манипулируется только стек.