我在.zshrc
setopt autopushd
它使cd行为像pushd.
这意味着我们根本没有堆栈.
当我使用它时,我根本没有使用过堆栈,因为它会从我身上移除堆栈.
我不确定autopushd有什么好处.
autopushd有什么好处?
解决方法
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 – ‘来改变你之前的目录(而不是父目录),这很有用.
Here’s another good writeup.
编辑为什么在使用cd时使用pushd?
cd /foo/bar cd /baz cd /somewhere/else
cd – 只会让你到/ baz.在输入’cd / foo / bar’之前,pushd会让你一直回到原来的位置.
目录堆栈在脚本中特别有用,您不能只返回命令历史记录并识别您所在目录的名称:
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中.