如何在 Linux 中更快地导航目录

今天我们将学习一些命令行生产力技巧。 如您所知,我们使用“cd”命令在类 Unix 操作系统中的一堆目录之间移动。 在本指南中,我将教你如何在 Linux 中更快地导航目录,而无需经常使用“cd”命令。 可能有很多方法,但我现在只知道以下五种方法! 当我在未来的日子里遇到任何方法或实用程序来完成这项任务时,我将继续更新本指南。

内容

  1. 在 Linux 中更快地导航目录的五种不同方法
    1. 方法一:使用“Pushd”、“Popd”和“Dirs”命令
    2. 方法 2:使用“bd”实用程序
    3. 方法 3:使用“Up”Shell 脚本
    4. 方法四:使用“​​快捷方式”工具
    5. 方法5:使用“CDPATH”环境变量

在 Linux 中更快地导航目录的五种不同方法

方法一:使用“Pushd”、“Popd”和“Dirs”命令

这是我每天在一堆目录之间导航时最常用的方法。 大多数 Linux 发行版都预装了“Pushd”、“Popd”和“Dirs”命令,因此不必费心安装。 当您在深度目录结构和脚本中工作时,这些三重奏命令非常有用。 有关更多详细信息,请查看下面给出的链接中的指南。

  • 如何使用 Pushd、Popd 和 Dirs 命令加快 CLI 导航

方法 2:使用“bd”实用程序

“bd”实用程序还可以帮助您快速返回到特定的父目录,而无需重复输入“cd ../../”。 在你的 Bash 上。

Bd 也可在 Debian 额外Ubuntu 宇宙 存储库。 因此,您可以在 Debian、Ubuntu 和其他基于 DEB 的系统中使用“apt-get”包管理器安装它,如下所示:

$ sudo apt-get update
$ sudo apt-get install bd

对于其他发行版,您可以如下所示进行安装。

$ sudo wget --no-check-certificate -O /usr/local/bin/bd https://raw.github.com/vigneshwaranr/bd/master/bd 
$ sudo chmod +rx /usr/local/bin/bd 
$ echo 'alias bd=". bd -si"' >> ~/.bashrc 
$ source ~/.bashrc

要启用自动完成,请运行:

$ sudo wget -O /etc/bash_completion.d/bd https://raw.github.com/vigneshwaranr/bd/master/bash_completion.d/bd
$ source /etc/bash_completion.d/bd

Bd 实用程序现已安装。 让我们看几个例子来了解如何使用这个工具快速移动目录堆栈。

创建一些目录。

$ mkdir -p dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dir10

上面的命令将创建目录层次结构。 让我们检查一下 目录结构 使用命令:

$ tree dir1/ dir1/ └── dir2  └── dir3  └── dir4  └── dir5  └── dir6  └── dir7  └── dir8  └── dir9  └── dir10  9 directories, 0 files

好的,我们现在有 10 个目录。 假设您当前位于第 7 个目录中,即 dir7。

$ pwd /home/sk/dir1/dir2/dir3/dir4/dir5/dir6/dir7

您想移动到 dir3。 通常你会输入:

$ cd /home/sk/dir1/dir2/dir3

对? 是的! 不过没必要! 要返回 dir3,只需键入:

$ bd dir3

现在您将在 dir3 中。

使用“bd”实用程序在 Linux 中更快地导航目录

容易,不是吗? 它支持自动完成,因此您只需键入目录的部分名称并按 Tab 键即可自动完成完整路径。

要检查特定父目录的内容,您不需要进入该特定目录。 相反,只需键入:

$ ls `bd dir1`

上面的命令将显示当前工作目录中 dir1 的内容。

有关更多详细信息,请查看以下 GitHub 页面。

  • bd GitHub 存储库

方法 3:使用“Up”Shell 脚本

“Up”是一个shell脚本,可以让你快速移动到你的父目录。 它适用于许多流行的 shell,如 Bash、Fish 和 Zsh 等。安装也非常简单!

安装“向上” 重击, 依次运行以下命令:

$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.bashrc 

up 脚本通过“.bashrc”文件注册“up”函数和一些完成函数。

使用命令更新更改:

$ source ~/.bashrc

zsh

$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.zshrc 

up 脚本通过“.zshrc”文件注册“up”函数和一些完成函数。

使用命令更新更改:

$ source ~/.zshrc

$ curl --create-dirs -o ~/.config/up/up.fish https://raw.githubusercontent.com/shannonmoeller/up/master/up.fish
$ source ~/.config/up/up.fish 

up 脚本通过“funcsave”注册“up”函数和一些补全函数。

现在是时候看一些例子了。

让我们创建一些目录。

$ mkdir -p dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dir10

假设您在第 7 个目录中,即 dir7。

$ pwd /home/sk/dir1/dir2/dir3/dir4/dir5/dir6/dir7

您想移动到 dir3。 使用“cd”命令,我们可以通过输入以下命令来做到这一点:

$ cd /home/sk/dir1/dir2/dir3

但是使用“up”脚本返回 dir3 真的很容易:

$ up dir3

而已。 现在您将在 dir3 中。 要上一个目录,只需键入:

$ up 1

要返回两个目录类型:

$ up 2

就是这么简单。 我输入了完整路径吗? 不。 它还支持制表符完成。 因此,只需键入部分目录名称并点击选项卡即可完成完整路径。

有关更多详细信息,请查看 GitHub 页面。

  • 上 GitHub 存储库

请注意,“bd”和“up”工具只能帮助您返回到当前工作目录的父目录。 你不能前进。 如果你想从dir5切换到dir10,你不能! 相反,您需要使用“cd”命令切换到 dir10。 这两个实用程序旨在快速将您移动到父目录!

方法四:使用“​​快捷方式”工具

这是在不同目录之间快速轻松切换的另一种便捷方法。 这有点类似于 别名 命令。 在这种方法中,我们为常用目录创建快捷方式,并使用快捷方式名称转到相应的目录,而无需键入路径。 如果您在深度目录结构和目录堆栈中工作,这种方法将大大节省一些时间。 您可以在下面给出的指南中了解它是如何工作的。

  • 在 Shell 中创建常用目录的快捷方式

方法5:使用“CDPATH”环境变量

此方法不需要任何安装。 光盘路径 是一个环境变量。 它有点类似于 小路 变量,其中包含使用连接的许多不同路径 ‘:’ (冒号)。 PATH 和 CDPATH 变量之间的主要区别是 PATH 变量可用于所有命令,而 CDPATH 仅适用于 光盘 命令。

我有以下目录结构。