在Linux中,pushd和popd命令用于与目录栈(directory stack)交互,它们是bash shell的内置命令,用于在多个目录之间高效地导航。
pushd 命令
pushd命令用于将目录添加到目录栈的顶部,并且将当前工作目录切换到该目录。这对于需要临时切换到另一个目录进行工作,然后再返回到原始目录的情况非常有用。
基本用法:
pushd [目录]:将指定的目录添加到目录栈顶部,并切换到该目录。如果没有指定目录,则交换栈顶的两个目录。
popd 命令
popd命令用于移除目录栈顶部的目录,并将当前工作目录切换到新的栈顶目录。
基本用法:
popd:从目录栈中移除顶部目录,并切换到新的栈顶目录。
dirs 命令
与pushd和popd一起使用的还有dirs命令,它用于显示当前目录栈的内容。
基本用法:
dirs:显示当前目录栈的列表。
示例
假设你当前在
/home/user目录,想要临时切换到/etc目录:1
pushd /etc
这会将
/etc目录添加到目录栈顶部,并切换当前目录到/etc。在
/etc目录完成工作后,你想要返回到之前的目录(/home/user):1
popd
这会将
/etc目录从目录栈中移除,并将当前目录切换回/home/user。在任何时候,如果你想查看当前目录栈的内容,可以使用:
1
dirs
这会列出目录栈中的所有目录。
通过这种方式,pushd和popd命令允许你在多个目录之间快速且方便地导航,而无需记住每个目录的路径。
pushd 和 popd 命令根据 ‘LIFO’(后进先出)原则工作。在该原则之下,只有两个操作是允许的:把一个目录压入栈,以及把一个目录弹出栈。
利用好这两个命令,可以来进行(比cd更)高效的目录导航
pushd 命令会增加一个目录到栈顶,而 popd 命令会从栈顶移除一个目录。
dirs -v 可以显示目录栈中的历史目录,如下:
可以通过pushd +数字方式,快速进入某个目录
popd 命令则相反,其作用是从栈顶或历史中移除一个目录。
为了列出目录栈中的所有目录,只需输入 popd
为了从目录栈中移除一个目录,可以使用 popd +数字 或 popd -数字 命令
原文链接: https://dashen.tech/2020/01/17/Shell的pushed和popd命令/
版权声明: 转载请注明出处.