Linux 的 basename 命令

Linux 的 basename 命令是一个常用的文件路径处理工具,主要用于从文件路径中提取文件名部分。该命令会去除路径中的目录部分,只返回最后的文件名。

基本语法

复制代码
basename [选项] 路径名 [后缀]

常用选项

  • -a:支持同时处理多个路径
  • -s:指定要删除的后缀(当需要去除文件扩展名时特别有用)
  • -z:使用 NUL 字符(\0)作为分隔符而非换行符

使用示例

  1. 基本用法:提取完整文件名

    复制代码
    $ basename /home/user/docs/report.txt
    report.txt
  2. 去除后缀:删除指定的文件扩展名

    复制代码
    $ basename /home/user/docs/report.txt .txt
    report
  3. 处理多个文件 :使用 -a 选项

    复制代码
    $ basename -a /path/to/file1.txt /another/path/file2.log
    file1.txt
    file2.log
  4. 批量处理:结合 find 命令使用

    复制代码
    $ find /var/log -name "*.log" -exec basename {} \;

应用场景

  • 在 shell 脚本中处理文件路径
  • 批量重命名文件时提取基础文件名
  • 日志分析时获取日志文件名
  • 构建自动化流程时处理文件路径

注意事项

  • 如果路径以斜杠(/)结尾,basename 会返回空字符串
  • 在脚本中使用时,建议将路径用引号括起来以避免空格带来的问题
  • 该命令是 GNU coreutils 的一部分,在所有 Linux 发行版中通常都预装了

与 dirname 命令的关系

basename 通常与 dirname 命令配合使用,后者用于提取路径中的目录部分。例如:

shell 复制代码
$ dirname /home/user/docs/report.txt
/home/user/docs
$ basename /home/user/docs/report.txt
report.txt
相关推荐
longzhizhui92624 分钟前
Ubuntu 全版本 CVE-2026-98432 内核安全升级操作手册
ubuntu·网络安全·云计算·bash
miaobinfei1 小时前
docker拉取dify镜像,执行docker compose up -d 报错
运维·docker·容器
小天源1 小时前
智叟云集系统 · 架构与职责分层
服务器·前端·数据库
女神下凡1 小时前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
天远API1 小时前
零信任架构实战:基于天远租凭分期报告构建自动化智慧租房免押分期履约评估网关
运维·人工智能·架构·自动化
我要见SA姐11 小时前
Chrome 扩展安全攻防实录:从权限滥用到供应链投毒
运维·人工智能·python·机器学习·自动化
kobe_OKOK_1 小时前
docker compose命名卷 映射到宿主机的路径
运维·docker·容器
herinspace2 小时前
管家婆实用贴-SQL 2008如何修改成混合模式
服务器·数据库·sql·管家婆软件·财务软件·合肥管家婆软件
克里斯蒂亚诺更新2 小时前
一个服务器访问另外一个服务器端口页面
运维·服务器
Land03292 小时前
财务RPA落地指南:银企对账、发票三单匹配、ERP台账自动化,RPA离线方案解析
服务器·自动化·rpa