Hello! 欢迎来到小浪云!


在Bash脚本中使用Linux的Dirname命令


avatar
小浪云 2024-06-29 40


Linux中的dirname命令会打印出一个文件路径,并将其最后的组件删除。这基本上可以从文件路径中得到目录路径。

这在你想从长文件路径中提取目录路径的bash脚本中特别有用。

dirname 命令是 basename 命令的补充。basename命令从路径中提取文件名,而dirname则是提取目录路径。

下面用一些例子来告诉大家。

Dirname命令的例子

dirname命令的语法简单明了:

dirname OPTION PATH

将dirname命令与文件的绝对路径一起使用将给出目录路径:

dirname /home/user/data/filename.txt

/home/user/data

像basename命令一样,dirname命令实际上也是愚蠢的。它不能真正识别文件路径。它只查找斜杠(/)并打印最后一个斜杠之前的内容。基本上,您可以给它带/的任何字符串,并且可以在其上使用。

例如,我在这里使用一个随机字符串,其中没有文件名。您可以看到它仍然可以正常工作,并输出一个字符串,删除最后一个/及其后面的文本。

如果路径中没有斜线(/),它将输出一个点(.)表示当前目录。

你也可以使用多路径的dirname。它将在一个新的行中返回每个路径的输出。

您可以使用-z选项在同一行中获得结果,并以NULL字符分隔输出。

在bash脚本中使用目录名

让我们谈谈在bash脚本中使用目录名。

假设您有一个文件路径变量,并且想要获取包含该文件的目录的路径。这可能是一个简单的脚本:

pathname=”/home/dir/data/filename”

result=$(dirname “$pathname”)

echo $result

如前所述,dirname命令是basename命令的补充。与dirname不同,basename命令仅输出路径的最后一部分。

相关阅读