dirname命令详解(Ubuntu系统中如何轻松提取文件路径中的目录部分)

来源:这里教程网 时间:2026-03-28 08:05:19 作者:

在使用 Ubuntu 或其他 Linux 系统时,我们经常需要从一个完整的文件路径中提取出它所在的目录路径。比如,你有一个文件路径

/home/user/documents/report.txt
,而你只想知道这个文件位于哪个目录下(即
/home/user/documents
)。这时候,dirname 命令就派上用场了!

什么是 dirname 命令?

dirname
是 Linux 和 Unix 系统中的一个标准命令行工具,用于从给定的文件路径中提取目录部分,并忽略最后的文件名或子目录名。

基本语法

使用方式非常简单:

dirname [选项] 路径

实际使用示例

假设我们有以下路径:

/var/log/nginx/access.log
,我们想获取它的目录路径。

$ dirname /var/log/nginx/access.log/var/log/nginx

可以看到,

dirname
成功去掉了最后的文件名
access.log
,只返回了目录路径。

多个路径同时处理

你也可以一次传入多个路径:

$ dirname /home/user/file1.txt /opt/app/config.ini/home/user/opt/app

在 Shell 脚本中使用 dirname

在编写自动化脚本时,

dirname
非常有用。例如,你想让脚本知道它自己存放在哪个目录:

#!/bin/bashSCRIPT_DIR=$(dirname "$0")echo "当前脚本所在目录:$SCRIPT_DIR"

这里

$0
表示当前脚本的路径,
dirname "$0"
就能准确获取其所在目录。这是 Linux shell 脚本开发中的常见技巧。

常见误区与注意事项

如果路径以斜杠结尾(如
/home/user/
),
dirname
会将其视为目录,并继续向上提取:
dirname /home/user/
的结果是
/home
。 对于根目录
/
dirname /
的结果仍然是
/
。 路径中包含空格时,记得用引号包裹路径,避免解析错误。

总结

dirname
是一个轻量但极其实用的命令,特别适合在 Ubuntu 提取目录路径Linux 路径操作 或编写 shell 脚本获取目录名 时使用。掌握它,能让你在终端和脚本中更高效地处理文件路径。

无论你是刚接触 Linux 的小白,还是有一定经验的开发者,理解并熟练使用

dirname
命令都会对你的日常工作大有帮助。快打开终端试试吧!

相关推荐

热文推荐