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

相关推荐
chushiyunen24 分钟前
autoHotKey、windows自动化快捷键工具
运维·windows·自动化
逆风的蚂蚁28 分钟前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器
ESDWAN39 分钟前
企业网络监控应该监测哪些目标?网关、网络节点还是业务系统?
服务器·网络·php
mennekes1 小时前
临时用电线路标识:插头颜色、钟面标识配套规范
运维·网络·科技·安全·制造
发光小北2 小时前
EtherNet/IP 转 ModbusTCP 网关现场应用中会遇到什么问题?
服务器·网络·tcp/ip
程序猿老A3 小时前
轻量云服务器总是卡,内存占比高?
运维·服务器
一只鹿鹿鹿4 小时前
智算算力、AI-芯片与产品解析(PPT文件)
大数据·运维·网络·人工智能·物联网·1024程序员节
沫璃染墨4 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
Kobebryant-Manba4 小时前
C/S和B/S结构
运维·服务器
AI_Lab016 小时前
宝塔用了两年,有没有必要换成轻量方案?
linux·运维·服务器