两者的实际用途是什么,pushd以及popd何时使用这两个命令优于cdand cd -?
编辑:我正在寻找一些使用这两个命令的实际示例或将堆栈与目录保持在一起的原因(当您有制表符完成、cd -、缩短的别名cd ..等时)。
bash 命令
cd -
Run Code Online (Sandbox Code Playgroud)
打印以前使用的目录并对其进行更改。
另一方面,Bash 命令
cd ~-
Run Code Online (Sandbox Code Playgroud)
直接更改到以前使用的目录,不回显任何内容。
这是唯一的区别吗?每个命令的用例是什么?
cd -可以移动到上次访问的目录。除了上一篇之外,我们还能参观更多的历史吗?
在pushding 太多次之后,我想清除整个路径堆栈。
我将如何popd处理堆栈中的所有项目?
我想popd不需要知道堆栈中有多少?
bash 手册似乎没有涵盖这一点。
为什么我需要知道这些?我很挑剔,要清理堆栈。
bash 与 zsh 中 pushd/popd 的行为有区别吗?似乎在 zsh cd 中,cd- 的行为与 pushd/popd(在 cd 时自动添加/pops 目录)完全相同,而在 bash 中 cd 不影响目录堆栈。
如果有人能给我一个指针,那就太好了。
我用pushd工作在多个目录bash和zsh。我使用了别名dirs,dirs -v以便在我想查看目录堆栈中的内容时得到一个有序列表:
chb$ dirs
0 /Volumes/banister/grosste_daever_gh/2013-03-27/reader
1 /tmp/20130618202713/Library/Internet Plug-Ins
2 ~/code/foo/view/static/css
3 ~/Downloads
Run Code Online (Sandbox Code Playgroud)
有没有一种方法(在bash或 中zsh)我可以使用它在堆栈上的位置的别名来引用命令行上列出的目录之一?例如,而不是键入:
chb$ cp ~/code/foo/view/static/css/baz.css ~/code/bar/view/static/css/
Run Code Online (Sandbox Code Playgroud)
我会输入:
chb$ cp <2>baz.css ~/code/bar/view/static/css/
Run Code Online (Sandbox Code Playgroud)
......什么样,也许用一个美元符号和变量名来代替<n>。
我很高兴使用该cd -命令转到上一个目录。同时我喜欢pushd .和popd。
但是,当我想通过 记住当前工作目录时pushd .,我失去了通过 转到上一个目录的可能性cd -。(pushd .也执行cd .)。
怎么用pushd才能用cd -
顺便说一句:GNU bash,版本 4.1.7(1)
问题场景与此问题中所述的场景非常相似:删除或清除 popd/pushd 路径的堆栈……但是目标不是清除堆栈,而是修剪它。具体来说,剪枝操作就是去除重复项。
有没有一种直接的方法来修剪输出,dirs -v -p使得堆栈中没有重复项?
好的,这是一个简短的问题。我只是碰巧知道使用pushd命令,我们可以将更多工作目录添加到我们的列表中,这很方便。但是有没有办法让这个列表永久化,这样它就可以在重启或注销后继续存在?