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
相关推荐
码农学院2 小时前
基于运维监控体系的网络品牌推广方案:从架构设计到技术实现
运维·网络
爱写代码的森8 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
大耳朵-小飞象11 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技11 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
HLC++12 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室13 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
白露与泡影13 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
神奇霸王龙14 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
Web极客码14 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress
生活爱好者!14 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器