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
相关推荐
younuo36553 分钟前
广州网站搭建费用明细:域名、服务器与开发成本全解析
服务器·前端·github
邪修king3 分钟前
Re:Linux 系统篇(十六):进程篇(五):O (1) 调度算法深度解析 —— 优先级数组、位图优化与活跃 / 过期双队列
linux·运维·算法
苏三福4 分钟前
ubuntu 在文件管理系统中用sftp打开远程文件空白的问题解决
linux·运维·ubuntu
云飞云共享云桌面7 分钟前
10 人三维研发团队,如何利用单台图形服务器承载 SolidWorks 建模与仿真?
运维·服务器·网络·自动化·制造
在线考试系统推荐9 分钟前
拆成多道小题,优考试“理解题“怎么用?
服务器·人工智能·学习
邪修king9 分钟前
Re:Linux 系统篇(十四):进程篇(三):进程退出与特殊进程 —— 僵尸 Z 状态、孤儿进程深度解析
linux·运维·服务器
lingran__10 分钟前
Git 完全指南(一):本地仓库基础操作
linux·git·开发工具·devops·版本控制
snow@li13 分钟前
服务器运维:Alibaba Cloud Linux 4 LTS・Vue前端 Java 后端 K3S 部署 CICD 目录规范清单
linux·前端·vue.js
2301_8026510822 分钟前
linux系统的学习:网络
linux·网络·学习
倔强的石头_25 分钟前
运维的活儿全压在一台笔记本上,我给桌面加了块只往上长的双 4K屏
运维