> 文件与目录管理 > basename

basename 命令指南

`basename` 命令用于从文件路径中提取纯粹的文件名(或目录名),不包括目录部分。这在需要整洁地处理 shell 脚本中的文件名时非常有用。

basename 概述

`basename` 返回给定路径字符串中最后一个斜杠 (/) 之后的字符串。换句话说,它是一个从文件或目录的完整路径中仅检索其名称部分的命令。

basename 的作用

`basename` 命令主要用于以下情况:

主要应用领域

  • Shell 脚本: 在文件处理循环中仅提取文件名以执行特定操作时。
  • 日志分析: 从包含路径的日志中仅筛选文件名以创建统计数据时。
  • 自动化: 基于文件名生成或处理其他文件名时。

主要 basename 命令选项

`basename` 命令虽然简单,但可以通过有用的选项执行额外功能,例如删除特定的扩展名。

1. 基本用法

2. 扩展名移除选项

生成的命令:

请尝试组合命令。

描述:

`basename` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

通过 `basename` 命令的实际示例,练习文件名提取和处理。

从文件路径中提取文件名

basename /home/user/documents/report.pdf

从 `/home/user/documents/report.pdf` 路径中提取纯粹的文件名 `report.pdf`。

从目录路径中提取最后一个目录名

basename /var/log/apache2/

从 `/var/log/apache2/` 路径中提取最后一个目录名 `apache2`。

移除文件扩展名

basename image.png .png

从 `image.png` 文件名中移除 `.png` 扩展名,只留下 `image`。

移除复杂扩展名

basename archive.tar.gz .tar.gz

从 `archive.tar.gz` 中移除 `.tar.gz` 扩展名,只留下 `archive`。

在脚本中应用 basename 的示例

for file in *.log; do
  base_name=$(basename "$file" .log)
  echo "Processing: $base_name"
done

一个 shell 脚本示例,使用 for 循环只输出具有 `.log` 扩展名的文件的基本名称。


相关命令

功能上相似或经常一起使用的命令。


相同类别命令