
Linux pushd/popd命令切换目录
pushd和popd命令是允许您在Linux和类Unix的操作系统以目录堆栈的方式切换目录
pushd和popd命令是允许您在Linux和类Unix的操作系统以目录堆栈的方式切换目录。
尽管pushd和popd是非常强大且有用的命令,但它们却被低估并且很少使用。
在本教程中,我们将向您展示如何使用pushd和popd命令切换系统的目录树。目录堆栈是您先前浏览过的目录的列表。可以使用dirs命令查看目录堆栈的内容。
目录堆栈
使用pushd命令切换到目录时,目录会添加到堆栈中,而使用popd命令会从堆栈中删除目录。
当前工作目录始终位于目录堆栈的顶部。 当前工作目录是用户当前所在的目录文件夹。每次与命令行交互时,当前目录称为工作目录。
pwd命令可让您查看当前所在的目录。在文件系统中导航时,可以使用Tab键自动补全目录的名称。在目录名称的末尾添加斜杠是可选的。
pushd,popd和dirs是shell内置程序,在不同的shell中其行为可能略有不同。我们将介绍命令的Bash内置版本。
pushd命令
pushd命令的语法形式是pushd [OPTIONS] [DIRECTORY]。其中OPTIONS是pushd命令的选项,可选参数,DIRECTORY是可选参数,指定目录。
例如,要将当前目录保存到目录堆栈的顶部并同时切换到/var/www目录,您可以运行命令pushd /var/www,这其实相当于使用cd命令切换目录。
成功后,命令pushd /var/www打印目录堆栈。~表示当前用户家目录。
pushd /var/wwwpushd命令首先将当前工作目录保存到堆栈的顶部,然后切换到指定的目录。由于当前目录必须始终位于堆栈的顶部。
因此更改后,新的当前目录将移至堆栈的顶部。如果您使用cd命令切换到另一个目录,则堆栈的顶部目录也随之切换。
pushd命令接受两个选项,+N和-N,可用于导航到堆栈的第几个目录Nth。+N选项切换到堆栈列表的Nth元素。
从零开始,从左到右计数。使用-N时,计数方向是从右到左。为了更好地说明这些选项。
请先运行命令dirs -l -v打印当前目录的堆栈,终端输出将显示目录堆栈的索引列表。
dirs -l -v 0 /opt
1 /usr/local
2 /var/www
3 /home/myfreax例如要切换到目录/var/www,并将其移到堆栈的顶部。从上到下或从左到右计数时,目录的索引为2,因此命令是pushd +2。
在不指定任何参数与选项运行pushd命令时,将切换到上一工作目录,并使新的前一个目录成为当前目录。这与运行命令cd -是一样的。
从下到上计数时,/var/www目录的索引为1,因此命令pushd -1。
popd命令
popd命令的语法形式是popd [OPTIONS]。在不指定任何选项运行popd时,popd从堆栈中删除第一个目录,并导航到目标目录。
与pushd相同,popd也接受+N和-N选项,这些选项可用于删除堆栈的第几个目录Nth。
假设我们的目录堆栈存在目录/opt /usr/local /var/www /etc/nginx ~。如果运行popd命令,它将从堆栈中删除/opt并切换到/usr/local目录。
终端将会打印将打印目录堆栈/usr/local /var/www /etc/nginx ~。
popd/usr/local /var/www /etc/nginx ~结论
通常,您都会使用cd命令从一个目录导航到另一个目录。但是,如果您在命令行上花费大量时间填写目录路径的时候,pushd和popd命令将提高您的效率。
如果您有任何问题或反馈,请随时发表评论。
