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