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

我们使用 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 $PATH
输出结果
bin

我们还可以使用一个简短的技巧通过将基本名称命令修改为这样的东西来获取倒数第二个值 -

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

上面的命令将有助于获取 PATH 变量的第二个姓氏,它是一个目录。

输出结果

.cargo

同样,我们也可以打印第三个姓氏。

命令

sh-3.2# echo $(basename $(dirname $(dirname $PATH)))
输出结果
immukul