在Bash脚本中使用Linux Dirname命令
时间:2020-03-05 15:26:31 来源:igfitidea点击:
Linux中的dirname命令打印文件路径,并删除其最终组件。
基本上,这从文件路径为我们提供了目录路径。
这对于要从长文件路径中提取目录路径的bash脚本特别有用。
dirname命令是basename命令的补充。
basename命令从path提取文件名,而dirname提取目录路径。
让我通过一些示例向我们展示。
dirname命令示例
dirname命令的语法很简单。
dirname OPTION PATH
将dirname命令与文件的绝对路径一起使用将给出目录路径:
dirname /home/user/data/filename.txt /home/user/data
像basename命令一样,dirname命令实际上也是愚蠢的。
它不能真正识别文件路径。
它只查找斜杠(/)并打印最后一个斜杠之前的内容。
基本上,我们可以给它带/的任何字符串,它将在其上运行。
例如,我在这里使用没有文件名的随机字符串。
我们可以看到它仍然可以正常工作,并输出一个字符串,删除最后一个/及其后面的文本。
如果路径中没有斜杠(/),它将输出一个表示当前目录的点(。
)。
我们也可以将dirname与多个路径一起使用。
它将在新行中返回每个路径的输出:
我们可以使用-z选项在同一行中获得结果,并以NULL字符分隔输出。
在bash脚本中使用目录名
我展示了dirname命令的一些示例。
我们来谈谈在bash脚本中使用目录名。
假设我们有一个文件路径变量,并且想要获取包含该文件的目录的路径。
这可能是一个简单的脚本:
pathname="/home/dir/data/filename" result=$(dirname "$pathname") echo $result
如前所述,dirname命令是basename命令的补充。
与dirname不同,basename命令仅打印路径的最后一部分。