今天我们将学习一些命令行生产力技巧。 如您所知,我们使用“cd”命令在类 Unix 操作系统中的一堆目录之间移动。 在本指南中,我将教你如何在 Linux 中更快地导航目录,而无需经常使用“cd”命令。 可能有很多方法,但我现在只知道以下五种方法! 当我在未来的日子里遇到任何方法或实用程序来完成这项任务时,我将继续更新本指南。
内容
在 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 中。
容易,不是吗? 它支持自动完成,因此您只需键入目录的部分名称并按 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 仅适用于 光盘 命令。
我有以下目录结构。