Linux dirname命令详解

dirname 命令是一个用于处理文件路径的纯文本工具,它不涉及文件系统操作,只负责提取字符串中最后一个分隔符 '/' 之前的部分。

📝 基本用法

dirname 的核心功能非常简单:它会去掉路径字符串的最后一个组成部分(即文件名或最后一级目录名),并输出剩下的目录路径。

  • 提取目录 :dirname <文件路径>。例如,dirname /home/user/file.txt 会输出 /home/user。
  • 处理当前目录 :如果路径中没有斜杠 /,它会输出 .,表示当前目录。
  • 处理根目录 :如果路径是根目录 /,它会输出 /。
  • 处理多个路径 :可以一次处理多个路径,结果会分行显示。
  • 处理末尾斜杠 :它会智能地忽略路径末尾的斜杠 /。

🔧 语法与选项

dirname 的语法非常简洁,基本格式为:

bash

复制代码
dirname [选项] 名称...

其支持的选项如下:

选项 描述
-z, --zero 使每一行输出以空字符 (NUL) 结尾,而不是换行符 (newline)。这在处理包含换行符的奇怪文件名时很有用。
--help 显示帮助信息并退出。
--version 输出版本信息并退出。

📖 核心使用场景与示例

场景一:作为 basename 命令的互补

dirname 与 basename 命令经常一起出现,basename 用于提取路径的最后一个组件,两者互补。

bash

复制代码
#假设文件路径为/home/user/script.sh
复制代码
复制代码
# basename提取文件名
复制代码
$ basename /home/user/script.sh
复制代码
script.sh
复制代码
复制代码
# dirname提取目录部分
复制代码
$ dirname /home/user/script.sh
复制代码
/home/user

" 不能做的 " :dirname 不会检查路径是否存在或有效。无论文件或目录是否存在,它都会返回计算结果。

相关推荐
戴为沐17 小时前
Linux内存扩容指南
linux
zylyehuo1 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF2 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者3 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
荣--4 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森4 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜4 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https