Linux basename命令详解

basename 是一个很有实用价值的 Linux 命令,常用于 Shell 脚本,主要用于从文件路径中提取出纯粹的文件名(或者目录名),并能选择性地移除文件后缀。

它简化了很多与文件处理相关的自动化任务,例如在批量重命名或文件格式转换时,可以方便地提取文件的"主名",再添加新的后缀。

它的核心功能非常简单:剥离掉一个路径字符串中所有的目录前缀部分,只保留下路径的"尾巴"。例如,执行 basename /home/user/example.txt,结果会是 example.txt。

✨ 核心语法与常用选项

basename 的基本语法如下,可以灵活使用参数来定制效果:

bash

复制代码
#基础语法
复制代码
basename NAME [SUFFIX] #处理单个路径,可选指定要去除的后缀
复制代码
basename OPTION... NAME... #使用高级选项处理一个或多个路径

常用选项清晰地概括了它的主要功能:

选项 (短/长) 功能描述
-a, --multiple 支持同时处理多个路径参数,适合批量操作。
-s, --suffix=SUFFIX 移除指定的文件后缀 (这个选项会自动启用 -a 模式)。
-z, --zero 输出结果的结尾用 NUL 字符(\0)分隔,而不是默认的换行符,这在处理包含换行符的特殊文件名时非常有用。

📖 实战应用示例

以下是 basename 命今的一些常见用法。

1. 基础用法:提取文件名

最常用的场景,就是从一个完整的或相对的路径中,提取出最终的文件名或目录名。

bash

复制代码
#提取文件全名
复制代码
basename /etc/passwd
复制代码
#输出: passwd
复制代码
basename /var/log/system.log
复制代码
#输出: system.log
复制代码
复制代码
#提取目录名(会得到最后一级目录)
复制代码
basename /usr/local/bin/
复制代码
#输出: bin
2. 移除后缀:精确提取文件主体

这对于处理源代码或各种文本文件尤其方便,例如将 .c 文件编译成 .o 文件时。

bash

复制代码
#移除单个文件的后缀.txt
复制代码
basename -s .txt document.md
复制代码
#输出: document
复制代码
复制代码
#移除单个文件的后缀.h(另一种语法)
复制代码
basename /usr/include/stdio.h .h
复制代码
#输出: stdio
相关推荐
Flynn Liang10 分钟前
MQTT 共享订阅$share/原理:怎么用它给消费端水平扩容做负载均衡
运维·物联网·mqtt·iot·mqtt broker
Zevalin爱灰灰17 分钟前
Linux入门第一部分(Ubuntu入门篇) 第二章 浅尝Ubuntu(二)
linux·嵌入式·1024程序员节
海宇AI34 分钟前
零信任架构实战:基于海宇行驶OCR证识别构建自动化租车车队行驶证电子档案网关
运维·人工智能·架构·自动化·1024程序员节
北京中科新远科技1 小时前
高速接口兼容排查实战:OSFP、QSFP112与QSFP56如何逐层验证
linux·运维·网络
Ruiery1 小时前
Linux 6.6内核 CPU 深度解析(零):x86 内核引导协议 — 从 bootloader 到 main()
linux·运维·服务器
Ruiery1 小时前
Linux 6.6内核 CPU 深度解析(十六):x86 保护机制 — 从 ring 到页表的权限防线
linux·运维·服务器
qetfw1 小时前
Linux 文件清理:find、mtime 与安全传参验证
linux·shell·1024程序员节
贵州诚鑫致达科技有限公司1 小时前
PHP两个9.2分RCE漏洞,速查版本
服务器·php·1024程序员节
不老刘2 小时前
异构双 Agent 协同:构建无人值守的长任务自动化研发流水线
运维·人工智能·自动化·ai编程·1024程序员节
可乐_不渴2 小时前
【Linux】 项目自动化构建工具makefile&& 版本管理Git&&第一个程序
linux·git·自动化·1024程序员节