如何在 Bash 中获取文件路径参数中的最后一个 dirname/filename?


我们使用 bash 文件来存储不同的变量,我们通常称之为环境变量。稍后,我们可以通过 Linux 提供的 echo 实用程序命令轻松打印它们来访问这些变量。

示例

打印 $PATH 环境变量。

命令

echo $PATH

输出

immukul@192 src % echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Library/Apple/usr/bin:/Us
ers/immukul/.cargo/bin

现在我们可以看到 PATH 环境变量由不同的目录组成,假设我们想要路径变量中的最后一个文件名。

在这种情况下,我们将使用 Linux 提供的 basename 命令实用程序。

**basename** 命令用于移除目录路径并返回变量中存在的最后一个文件名。

命令

basename $PATH

输出

bin

我们还可以使用一个简单的技巧来获取倒数第二个值,方法是将 basename 命令修改为类似这样的内容:

sh-3.2# echo $(basename $(dirname $PATH))

上述命令将有助于获取 PATH 变量的倒数第二个名称,这是一个目录。

输出

.cargo

同样,我们也可以打印倒数第三个名称。

命令

sh-3.2# echo $(basename $(dirname $(dirname $PATH)))

输出

immukul

更新于:2021年7月30日

1K+ 浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告