云网牛站
所在位置:首页 > Linux命令 > 使用Pushd和Popd命令在Linux中更快的导航目录

使用Pushd和Popd命令在Linux中更快的导航目录

2019-04-11 16:08:07作者:林精颌稿源:云网牛站

本文介绍在Linux操作系统中更快的导航目录的方法:使用Pushd和Popd命令。我们通常使用cd /go/to/the/path来转到给定目录,使用cd ..返回一个父目录,并使用cd转到我们开始的父目录,但是本文介绍比这更简便的方法。

使用Pushd和Popd命令在Linux中更快的导航目录

 

pushd和popd简介

pushd和popd是shell内置命令,它使用LIFO(Last in, First out)方法。

pushd命令用于将当前目录信息推送到堆栈中,popd从堆栈顶部删除目录。

参考:

pushd命令_Linux pushd命令使用详解:将目录加入命令堆叠中

popd命令_Linux popd命令使用详解:用于删除目录栈中的记录

dirs命令将显示目录堆栈信息。

注:这些命令允许我们更快地在目录之间导航。

 

使用pushd和popd进行更快速的导航

现在,我在/root目录中,我打算去/root/usr/share/icon/Paper目录。

为此,只需运行以下命令即可:

# pwd

/root

# pushd /usr/share/icons/Paper/

/usr/share/icons/Paper ~

root@Ubuntu18:/usr/share/icons/Paper#

# dirs

/usr/share/icons/Paper ~

上面的输出清楚地显示我在/root/usr/share/icon/paper目录中。

如果要快速返回/root,则只需运行以下命令即可:

root@Ubuntu18:/usr/share/icons/Paper# popd

~

root@Ubuntu18:~#

# pwd

/root

我来到/root目录了。

 

使用pushd和popd使用索引号进行更快速的导航

你会想到这些数据存储在哪里?为了澄清这一点,我们将导航几个目录并向你显示输出:

# pushd /opt

/opt ~

# pushd /home/ywnz

/home/ywnz /opt ~

# pushd /usr/share/icons/Paper

/usr/share/icons/Paper /home/ywnz /opt ~

# pushd /var/log

/var/log /usr/share/icons/Paper /home/ywnz /opt ~

我执行的命令列表将存储在目录库存中,要查看目录库存信息,请运行以下命令:

# dirs

/var/log /usr/share/icons/Paper /home/ywnz /opt ~

有关详细信息,请使用-v选项和dirs命令(参考:dirs命令_Linux dirs命令使用详解:显示目录记录):

# dirs -v

0  /var/log

1  /usr/share/icons/Paper

2  /home/ywnz

3  /opt

4  ~

正如我们在本文开头所讲,它使用FIFO方法,因此索引号应按相反的顺序分配。

因此,目录堆栈的输出实际上如下所示,只需从左到右分配从零开始的索引号:

[Index 0] : /var/log

[Index 1] : /usr/share/icons/Paper

[Index 2] : /home/ywnz

[Index 3] : /opt

[Index 4] : ~

要转到目录库存中的特定目录,我们必须使用带有索引号的pushd命令,如pushd +N或pushd -N。

如果我想去/opt目录,那么我必须运行以下命令:

# pushd +3

/opt ~ /var/log /usr/share/icons/Paper /home/ywnz

root@Ubuntu18:/opt#

一旦你运行上面的命令,它将重新安排索引,你必须相应地使用。

要转到/usr/share/icons/Paper,必须使用以下命令:

# pushd +3

/usr/share/icons/Paper /home/ywnz /opt ~ /var/log

root@Ubuntu18:/usr/share/icons/Paper#

它将移动(剪切和过去)所有目录到最后而不改变格式,这在给定目录前可用。

基于上面的例子,它将移动/usr/share/icons/Paper目录前的所有可用目录。

它根据请求将目录堆栈分为Part-A和Part-B两部分,请求的目录应该是Part-A,它将一直到堆栈结束。

剩下的目录应该是Part-B,并且在Part-A之后移动到,此外,在使用popd之前,它不会从堆栈中删除任何目录。

如果要从目录堆栈中删除/opt,运行以下命令:

# dirs

/home/ywnz /opt /var/log ~

# popd +1

/home/ywnz /var/log ~

如果你想回到/var/log,只需运行以下命令即可:

root@Ubuntu18:/home/ywnz# popd

/var/log ~

root@Ubuntu18:/var/log#

 

相关主题

使用up.sh脚本在Linux中快速导航到特定的父目录

Linux命令子频道
精选文章
热门文章