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

[ad_1]

今天我们将学习一些命令行生产力技巧。 如您所知,我们使用“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 仅适用于 光盘 命令。

我有以下目录结构。

目录结构

如您所见,在名为“ostechnix”的父目录下有四个子目录。

现在使用命令将此父目录添加到 CDPATH:

$ export CDPATH=~/ostechnix

您现在可以立即 cd 到父目录的子目录(即 ~/ostechnix 在我们的例子中)来自文件系统中的任何位置。

例如,目前我在 /var/邮件/ 地点。

pwd 命令输出

pwd 命令输出

cd 到 ~/ostechnix/Linux/ 目录,我们不必使用目录的完整路径,如下所示:

$ cd ~/ostechnix/Linux

相反,只需提及您要切换到的子目录的名称:

$ cd Linux

它会自动 cd 到 ~/ostechnix/Linux 目录立即。

cdpath 环境变量

cdpath 环境变量

正如您在上面的输出中看到的,我没有使用“cd ”。 相反,我只是使用了“cd ”命令。

请注意,CDPATH 将允许您快速导航到 CDPATH 变量中设置的父目录的一个子目录。 导航一堆目录(当然是子目录中的目录)并没有多大帮助。

要查找 CDPATH 变量的值,请运行:

$ echo $CDPATH

示例输出为:

/home/sk/ostechnix

为 CDPATH 设置多个值

与 PATH 变量类似,我们也可以为 CDPATH 设置多个值(多个目录),以冒号 (:) 分隔。

$ export CDPATH=.:~/ostechnix:/etc:/var:/opt

使更改持久化

如您所知,上述命令(导出)只会保留 CDPATH 的值,直到下次重新启动。 要永久设置 CDPATH 的值,只需将它们添加到您的 ~/.bashrc 或者 ~/.bash_profile 文件。

$ vi ~/.bash_profile

添加值:

export CDPATH=.:~/ostechnix:/etc:/var:/opt

退出 键和类型 :wq 保存并退出。

使用命令应用更改:

$ source ~/.bash_profile

清除 CDPATH

要清除 CDPATH 的值,请使用 导出 CDPATH=””. 或者,只需从 ~/.bashrc 或者 ~/.bash_profile 文件。

在本文中,您了解了在 Linux 中更快、更轻松地导航目录堆栈的不同方法。 如您所见,更快地浏览一堆目录并不难。 现在停止使用这些工具无休止地输入“cd ../../..”。 如果您知道任何其他值得尝试的更快导航目录的工​​具或方法,请随时在下面的评论部分告诉我们。 我将审查并将它们添加到本指南中。

BASHbdcdcdpathCLI命令行FishLinux导航目录 Fastershell脚本upZSH

[ad_2]

Related Posts