网站搜索

在 Linux 中使用“pushd”和“popd”进行高效文件系统导航


有时,使用命令浏览 Linux 文件系统可能会很痛苦,尤其是对于新手来说。通常,我们主要使用 cd(更改目录)命令来移动 Linux 文件系统。

在上一篇文章中,我们回顾了一个简单但有用的 Linux CLI 实用程序,称为 bd – 用于快速返回到父目录,而无需重复键入 cd ../../..

本教程将解释一组相关的命令:“pushd”和“popd”,它们用于有效导航 Linux 目录结构。它们存在于大多数 shell 中,例如 bash、tcsh 等。

建议阅读: Autojump – 快速导航 Linux 文件系统的高级“cd”命令

pushd 和 popd 命令如何在 Linux 中工作

pushdpopd 按照“LIFO”(后进先出)原则工作。在这个原则中,只允许两种操作:将一个项目压入堆栈,以及将一个项目从堆栈中弹出。

Pushd 将一个目录添加到堆栈顶部,而 popd 从堆栈顶部删除一个目录。

要显示目录堆栈(或历史记录)中的目录,我们可以使用 dirs 命令,如下所示。

dirs
OR
dirs -v

pushd 命令 – 将目录路径放入/添加到目录堆栈(历史记录)中,然后允许您导航回历史记录中的任何目录。当您将目录添加到堆栈时,它也会回显历史记录(或“堆栈”)中存在的内容。

这些命令显示了 Pushd 的工作原理:

pushd  /var/www/html/
pushd ~/Documents/
pushd ~/Desktop/
pushd /var/log/

从上面输出中的目录堆栈(目录索引按相反顺序):

  • /var/log 是目录堆栈中的第五个 [索引 0]。
  • ~/Desktop/ 是第四个 [索引 1]。
  • ~/Documents/ 是第三个 [索引 2]。
  • /var/www/html/ 是第二个 [索引 3] 且
  • ~ 是第一个[索引 4]。

或者,我们可以使用 pushd +#pushd -# 形式的目录索引将目录添加到堆栈中。要进入 ~/Documents,我们需要输入:

pushd +2

请注意,此后堆栈内容将发生变化。因此,从前面的示例开始,要进入 /var/www/html,我们将使用:

pushd +1

popd 命令 – 从堆栈或历史记录的顶部删除目录。要列出目录堆栈,请键入:

popd

要从目录堆栈中删除目录,请使用 popd +#popd -#,在这种情况下,我们将键入以下命令来删除 ~/Documents

popd +1

另请查看:Fasd – 提供快速访问文件和目录的命令行工具

在本教程中,我们解释了“pushd”和“popd”命令,它们用于有效地导航目录结构。通过下面的反馈表分享您对本文的看法。