本系列的第一部分通过研究cd- command的使用方法,关注Linux的命令行导航。 讨论了其他一些相关点/概念。 此外,本文还介绍了如何使用pushd和popd命令在Linux命令行上获得更快的导航体验。
在我们前进之前,需要共享的是,所有以前讨论的说明和命令都经过了Ubuntu 14.04和bash shell [4.3. 11版]的测试。
pushd和popd命令的基础知识
为了更好地理解什么是pushd和popd命令,首先介绍讨论的概念。 想象一下厨房的空闲空间。 现在,想象一套你想留下的盘子。 怎么办? 很简单。 把他们中的一个维持在另一个人身上。
所以,在过程的最后,你留给板坯的第一块板是桩中的最后一块板,你手中的最后一块板最后是山中的第一块板。 现在,如果lcddwbl需要盘子,可以选择桩子上的,然后根据需要选择:
相似的是pushd和popd命令的概念。 Linux系统有一个目录,您可以在其中叠加目录路径,以备将来使用。 可以使用dirs命令在任何时间点快速查看的内容。
以下示例显示在命令行终端启动后立即输出系统上的dirs命令。
$ dirs
~
输出中的波形符号()表示目录中仅包含当前用户的主目录。
然后使用pushd和popd命令保存和删除目录路径。 使用pushd很简单。 只需将存储在目录中的路径作为命令的参数传递即可。 以下是一个例子:
pushd /home/himanshu/Downloads/
上述命令的作用是:将当前工作目录更改为作为参数传递的目录,并将路径添加到目录中。 为了方便用户使用,pushd命令在其输出中生成目录的内容。 因此,当执行上述命令时,~/Downloads ~
根据输出,现在有两个目录路径。 一个是用户的主目录,另一个是用户的下载目录。 主目录位于底部,新添加的Downloads目录按其顶部的顺序保留。
要确定pushd在输出中的含义,也可以使用dirs命令。
$ dirs
~/Downloads ~
所以可以看到dirs命令也有同样的输出。
发送几个推送命令:
$ pushd/usr/lib/pushd/home/him anshu/desktop /
/usr/lib ~/Downloads ~
~ /桌面/usr/lib~/downloads ~
因此,目录现在包含四个目录路径。 其中,主目录()、用户的桌面目录)位于顶部。
请注意,的头是当前目录。 这意味着当前的工作目录是/Desktop。
现在,假设您想返回到/usr/lib目录,所以要运行popd命令。
$ popd
/usr/lib ~/Downloads ~
popd命令不仅可以将当前目录切换到/usr/lib,还可以从目录中删除/Desktop。 这是由输出的命令生成的。 因此,使用popd命令可以按相反的顺序浏览这些目录。
一些进步
这里介绍了pushd命令和popd命令的基础知识。 有关这些命令的其他详细信息将继续讨论。 首先,您还可以使用这些命令操作目录。 例如,假设这里是你的目录的样子。
$ dirs
~ /桌面/usr/lib~~/downloads
此操作要求顶级元素(/Desktop )重新排序的目录路径,直到其结束。 这可以使用以下命令完成:
pushd 1
这就是上述命令对目录执行的操作。
$ dirs
/usr/lib~~/downloads~/桌面
我看到目录中元素的顺序发生了变化。 现在和我们想要的一样。 当然,目录元素可以移动任意次数。 例如,以下命令将移动两次:
$ pushd 2
~/downloads~/桌面/usr/lib ~
也可以使用负指数。
$ pushd -1
/usr/lib~~/downloads~/桌面
同样,可以使用popd命令的此技术从目录中删除条目,而无需离开当前工作目录。 例如,如果要使用popd从开头(当前/下载)删除第三个条目,可以运行以下命令:
popd 2
因为索引以0开始,所以使用2访问第三个条目。
目录包含以下项目:
$ dirs
/usr/lib~~ /桌面
验证条目是否已删除。
如果由于某些原因,元素在目录中的顺序以及它们拥有的索引很难记住,可以使用-v命令行选项和dirs命令。 以下是一个例子:
$ dirs -v
0 /usr/lib
1 ~
2~/桌面
如您所见,左侧的数字是索引,而相应的是目录路径。
注意:使用-c命令行选项和dirs命令清除目录。
现在,我将简要介绍popd和pushd命令的实际用法。 虽然看起来有点复杂,但是这些命令在编写shell脚本时很有用。 你不需要记住你来自哪里,只是做一个popd,你会回到你来的目录。
经验丰富的脚本编写人员通常使用以下命令:
popd /dev/null 21
上述命令确保popd保持安静。 不发生输出。 同样,也可以安静的pushd。
Linux服务器管理员也使用pushd和popd命令。 Linux服务器管理员通常在多个相同的目录之间移动。 这里介绍一些其他真正有用的用例。
结论
我同意。 pushd和popd的概念并不坦率。 但是,那个需要的只是一点练习。 是的,需要弄脏手。 花这些命令和时间,你会开始喜欢他们。 特别是有用例的话,他们会让你的生活变得容易。