Назад | Перейти на главную страницу

Невозможно понять преимущества автопушда Zsh

У меня в .zshrc

 setopt autopushd

Это заставляет cd действовать как pushd. Это означает, что у нас вообще нет стека. Когда я его использовал, я вообще не использовал стек, так как он удаляет стек из меня.

Я не уверен, в чем преимущество автопушда.

В чем преимущество автопушда?

pushd похож на cd, но он также помещает ваш текущий каталог в стек. Возможно, вы находитесь в каталоге / some / deep /, а затем вам нужно некоторое время покопаться в / var / www:

crb@server /some/deep/directory $ pushd /var/www/
/var/www /some/deep/directory
crb@server /var/www $ [do some stuff]
crb@server /var/www $ popd
/some/deep/directory
crb@server /some/deep/directory $

autopushd означает, что даже если вы наберете 'cd', вы получите эффект нажатия 'pushd', который вы не помните, что хотели использовать, пока не подумаете: «Чувак, я действительно хотел бы вернуться туда, где был раньше. ". Затем вы можете вернуться к истории каталогов.

Полезно знать, что вы всегда можете перейти в каталог, в котором вы были до этого (в отличие от родительского каталога), набрав «cd -».

Вот еще одна хорошая запись.

редактировать Зачем использовать pushd, если можно использовать cd -?

cd /foo/bar
cd /baz
cd /somewhere/else

cd - поднимет вас только до / baz. pushd вернет вас туда, где вы были до того, как набрали cd / foo / bar.

Стек каталогов особенно полезен в сценариях, где вы не можете просто вернуться к истории команд и узнать имя каталога, в котором вы были:

pushd /var/foo
# run a command, which might well change your PWD at the end of its execution - especially if it fails
popd

Теперь вы гарантированно находитесь в / var / foo.