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
相关推荐
leisoo80972 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
爱喝水的鱼丶3 小时前
SAP-ABAP:接口与报表场景专项优化:RFC/ODATA 接口、ALV 报表的性能提升方案
运维·性能优化·接口·sap·abap·rfc·经验交流
青瓦梦滋3 小时前
传输层UDP/TCP协议
linux·网络·c++·网络协议·tcp/ip·udp
ltl4 小时前
机密计算:SGX、SEV-SNP、TDX 与 ARM CCA
linux
ltl4 小时前
互联与网络:NVLink、InfiniBand、RoCE 与国产替代
linux
码上上班4 小时前
tengine知识点
linux·服务器·centos
画中有画4 小时前
自动化脚本开发最佳实践
运维·自动化
雾时之林6 小时前
Linux--软件管理、源码包安装
linux·服务器·数据库
江南风月6 小时前
如何使用WGCLOUD实现智能运维
运维·zabbix·运维开发·prometheus
xiaoxiangsiyan7 小时前
HCIA 网络技术基础核心模块详解
运维·网络·网络协议·tcp/ip·运维开发·网络基础