Zsh
無法理解 Zsh 的 autopushd 的好處
我在 .zshrc
setopt autopushd
它使 cd 的行為類似於 pushd。這意味著我們根本沒有堆棧。當我使用它時,我根本沒有使用堆棧,因為它從我身上刪除了堆棧。
我不確定 autopushd 有什麼好處。
自動推送有什麼好處?
pushd 類似於 cd,但它也將目前目錄推送到堆棧上。您可能在 /some/deep/directory 中,然後需要在 /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 -”更改到之前所在的目錄(而不是父目錄),這很有用。
編輯為什麼可以使用 cd - 時使用 pushd?
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 中。