首页
学习
活动
专区
圈层
工具
发布

Linux 的 basename 命令

Linux 的 basename 命令

Linux 的basename命令是一个用于提取路径中文件名或目录名的实用工具。它能够从给定的文件路径中去除目录前缀和后缀扩展名,返回最基础的名称部分。

基本语法

0basename [选项] 路径名 [后缀]

主要功能

提取文件名

从完整路径中提取最后的文件名部分

示例:basename /home/user/file.txt返回file.txt

去除扩展名

可选的第二个参数可指定要去除的后缀

示例:basename /home/user/file.txt .txt返回file

常用选项

-a

:支持多个参数处理

-s

:指定要删除的后缀(替代第二个参数方式)

-z

:使用空字符分隔输出(而非换行符)

实际应用场景

脚本编程

0# 获取当前脚本名称

1script_name=$(basename"$0")

批量处理文件

0# 批量去除文件扩展名

1for file in *.log; do

2  name=$(basename"$file" .log)

3echo"Processing $name"

4done

路径处理

0# 获取目录中的文件名

1find /var/log -type f | whileread path; do

2echo"Found file: $(basename "$path")"

3done

注意事项

路径中的斜杠会被正确处理(支持/和\)

如果路径以斜杠结尾,返回空字符串

在管道中使用时,建议用引号包裹变量防止空格问题

与dirname的对比

basename与dirname命令常常配合使用:

basename

:获取路径的最后部分

dirname

:获取路径的目录部分

示例:

0path="/usr/local/bin/python"

1echo"Directory: $(dirname "$path")"# 输出/usr/local/bin

2echo"Filename: $(basename "$path")"# 输出python

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Ot_2mYakJPSNJwrxPnQuC8IQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券