popd 和 pushd 的奇怪问题

popd 和 pushd 的奇怪问题

就在我以为我被弹出并推开时,当我尝试自己练习时......一切都变得糟糕透了。

我删除了临时目录。我通过 Finder 验证了这一点。

然后我创建了一组新的嵌套目录。突然,temp 又回来了,从我所看到的情况来看,我 pushd ~ 了两次???

pats-MacBook-Pro:~ pat$ mkdir -p hello/"I AM"/so/confused
pats-MacBook-Pro:~ pat$ pushd hello/"I AM"/so/confused
~/hello/I AM/so/confused ~ ~/temp
pats-MacBook-Pro:confused pat$ dirs -v
 0  ~/hello/I AM/so/confused
 1  ~
 2  ~/temp

这到底是怎么回事……?!?!我做错了什么?

非常感谢大家的耐心。

答案1

mkdirrmdir创建和删除目录。pushdpopd只是位置堆栈的接口。您可以将位置存储在堆栈中,也可以检索它。堆栈不关心存储在其中的位置是否真的存在。

换句话说,如果你通过 存储目录pushd然后删除它,它会保留在堆栈中。调用popd会导致错误,并且堆栈不会改变。

相关内容