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 不会检查路径是否存在或有效。无论文件或目录是否存在,它都会返回计算结果。

相关推荐
江屿风4 分钟前
【Linux系统】【Linux进程终止等待详解与程序替换机制初体验】流食般投喂
linux·运维·笔记·系统架构·centos·unix
螺蛳粉 螺蛳粉12 分钟前
CentOS 7.9 自建 Yum 源服务器搭建指南
linux·服务器·centos
赋创小助手13 分钟前
Qwen3.8-27B 本地推理 Benchmark 解析:llama.cpp、vLLM、SGLang 与长 Context 的性能差异
服务器·人工智能·大模型·qwen·vllm·sglang·context长度
2601_9494999425 分钟前
工业 POF 器件国产化新思路:芯瑞科技DT‑2532Z 解决安华高 HFBR‑2532Z 供应链卡点
运维·网络·人工智能·科技·光模块
fanxiaohui1213834 分钟前
2026符合上飞机标准的充电宝推荐南孚传应,质量稳定又安全
运维·服务器·人工智能·科技
国际云,接待41 分钟前
云服务器跨厂商迁移怎么尽量不停机:用 rsync、MySQL binlog 和 DNS TTL 做双阶段切换
运维·服务器·mysql
宝塔面板43 分钟前
宝塔拨测正式发布:网站测速、持续监控、异常告警
运维
Doris__HE1 小时前
【元脑服务器NF8260G7-NF8260M7技术规格分享】
运维·服务器·网络·数据库·性能优化
wdfk_prog1 小时前
ROS教程06:ROS1 Node 启动与停止流程
运维·缓存·docker·容器·ros
济南凡维1 小时前
Zebra Designer3试用文档
服务器·网络·zebra·打印机·斑马打印机