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

相关推荐
ouynagda2 分钟前
Linux 进程与线程学习笔记
linux·笔记·学习
聚搜云——JuSouClouD8 分钟前
重庆华为云代理商:GPU加速云服务器和普通ECS有什么区别?AI、渲染和计算场景怎么选
服务器·人工智能·华为云
渡我白衣1 小时前
深入理解 Transformer:Transformer 究竟是什么?
java·linux·开发语言·c++·人工智能·深度学习·transformer
挨踢诗人2 小时前
金蝶K3 WISE × 乐企平台 直连数电票集成解决方案(商贸企业开票自动化)
大数据·运维·自动化
光电的一只菜鸡8 小时前
ubuntu之坑(二十)——VMware虚拟机系统无法正常进入如何处理
linux·运维·ubuntu
青 春 记 忆8 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
Java王小怪10 小时前
Docker环境Redis没挂载保存数据
运维·docker·容器
你住过的屋檐10 小时前
【Nginx】linux上安装nginx
linux·运维·nginx
宵时待雨10 小时前
linux笔记归纳17:传输层协议UDP
linux·笔记·udp
大模型码小白11 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring