约 3490 字

约 17 分钟

#Bash 的 basename 命令

basename OPTION... NAME [SUFFIX]

功能

从文件路径中去除目录和后缀。

类型

可执行文件(/usr/bin/basename),属于 coreutils。

参数

  • OPTION 选项:
    • -a, --multiple - 输入多个文件名参数,而不是要删除的后缀
    • -s, --suffix=SUFFIX - 删除后缀的 SUFFIX
    • -z, --zero - 以空字符(\0)作为行的结尾,而不是换行符(\n)
    • --help - 显示帮助
    • --version - 显示版本
  • NAME - 文件路径;不要求文件存在
  • SUFFIX - 要删除的后缀;同 -s 选项

#示例

单个文件

$ basename /path/to/file.txt        # 去除目录
rgb.txt
$ basename /path/to/file.txt .txt   # 去除目录和后缀

多个文件

$ basename -a /path/to/file1.txt /path/to/file2.txt             # 去除目录
file1.txt
file2.txt
$ basename -s .txt -a /path/to/file1.txt /path/to/file2.txt     # 去除目录和后缀
file1
file2
  • -s 选项参数必须在 -a 选项之前,否则 -a 会将 -s 和 .txt 也视为两个文件路径参数

#相关命令

命令说明
dirname提取文件路径中的目录
realpath解析路径

#推荐阅读

#手册

更新: 2026/1/18

作者: PlanC

创建: 2025/10/29