Linux 命令大全之 basename 详解:从路径提取基本名称与 Shell 脚本文件重命名实战
文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载本文基于 Linux 命令大全linux-command仓库中的 basename 命令文档完整讲解 basename 命令的语法、选项、参数与实战用法包括如何从带路径的文件名中剥离目录、如何结合命令替换构造同名前缀、异后缀的输出文件名并对照仓库中 dirname 命令文档 与 构建脚本 中的实际应用帮助你彻底掌握这一路径处理利器能够在 Shell 脚本中写出更稳健、更可读的文件处理逻辑。basename 命令是什么从完整路径中提取基本名称在 Linux 日常操作中我们经常面对形如/home/jim/program.c的完整路径。很多时候脚本只需要其中最后一段——即文件本身的名称program.c而不关心它位于哪个目录。basename 命令正是为此而生它打印目录或者文件的基本名称即去除路径中的目录部分只保留最后的文件名或目录名组件。在 shell 脚本中basename 常与 dirname 命令配合使用用于命令替换command substitution来指定和输入文件名称有所差异的输出文件名称。例如把/data/logs/app.log处理成app.log后再追加新的后缀这是日志轮转、备份归档、批处理脚本中最常见的需求之一。语法与选项解析语法basename(选项)(参数)命令的基本形态非常简单传入一个带路径信息的字符串basename 就会输出其中最后一段内容。选项--help显示帮助信息 --version显示版本号信息。$ basename --help 用法basename 名称 [后缀] 或basename 选项 ... $ basename --version basename (GNU coreutils) ...部分 GNU coreutils 版本还提供-a同时处理多个参数与-s指定去除后缀等扩展选项但上述--help与--version是文档明确给出的两个最基础选项适用于几乎所有发行版。参数文件带路径信息的文件必填basename 会从中提取基本名称后缀可选参数指定要去除的文件后缀字符串。当文件基本名称以该后缀结尾时后缀会被一并去除。例如basename /home/jim/program.c .c会先提取program.c再因为给定后缀.c而输出program。实战示例两个核心用法示例一显示一个 shell 变量的基本名称要显示一个 shell 变量的基本名称请输入basename $WORKFILE此命令显示指定给 shell 变量WORKFILE的值的基本名称。如果WORKFILE变量的值是/home/jim/program.c文件则此命令显示program.c$ WORKFILE/home/jim/program.c $ basename $WORKFILE program.c无论路径多深、包含多少层目录basename 都只输出最后一段组件这在脚本中提取文件名变量时极为常用。示例二构造一个和另一个文件名称相同除了后缀的文件名称要构造一个和另一个文件名称相同除了后缀的文件名称请输入OFILEbasename $1 .c.o此命令指定给OFILE文件第一个位置上的参数$1的值但它的.c后缀更改至.o。如果$1是/home/jim/program.c文件则OFILE成为program.o。因为program.o仅是一个基本文件名称它标识在当前目录中的文件。拆解这一经典写法可以看到 bash 中的三层协作$1是脚本或函数接收的第一个参数此处为完整路径basename $1 .c用命令替换提取基本名称并去除.c后缀得到program再通过拼接.o最终得到program.o——一个与输入文件同前缀、不同后缀的新文件名。这条命令的妙处在于无论调用脚本时传入的路径是/home/jim/program.c、./src/program.c还是相对的program.c输出的OFILE都是纯净的program.o落在当前目录不会因路径层级而出现偏差。更多实战路径处理与边界场景在掌握核心用法后可以继续扩展到日常更常见的场景去除任意后缀得到基名用于日志或备份文件命名$ basename /var/log/nginx/access.log .log access配合循环批量处理文件提取文件名做进一步操作for file in /data/uploads/*.tar.gz; do name$(basename $file .tar.gz) echo 解压目录$name done注意引号与路径尾斜杠的边界行为当路径以/结尾如basename /a/b/时basename 输出的往往是最后一个非空路径组件当传入的参数不含任何/时如basename a输出就是参数本身。这些细节在不同实现上略有差异脚本中建议对路径变量做好引号保护与判空处理。basename 与 dirname路径解析的一体两面basename 提取文件名的同时其姊妹命令 dirname 负责取出目录部分。仓库中的 dirname 命令文档 明确说明dirname 命令去除文件名中的非目录部分仅显示与目录有关的内容。dirname 命令读取指定路径名保留最后一个/及其后面的字符删除其他部分并写结果到标准输出。如果最后一个/后无字符dirname 命令使用倒数第二个/并忽略其后的所有字符。$ dirname // 结果为 / $ dirname /a/b/ 结果为/a $ dirname a 结果为 . $ dirname a/b 结果为路径名 a对比可见basename /home/jim/program.c得到program.c而dirname /home/jim/program.c得到/home/jim。两者互补正好把一条完整路径拆成目录部分 文件名部分。文档同样强调dirname 和 basename 通常在 shell 内部命令替换使用以指定一个与指定输入文件名略有差异的输出文件名——这正是前面OFILE示例的底层逻辑。结合仓库源码basename 在 linux-command 项目中的实际应用command 目录与索引生成linux-command 仓库将每个命令的说明整理为独立的 Markdown 文件存放在 command 目录 下如 basename.md、dirname.md再通过 scripts/build.mjs 生成静态站点与索引数据 dist/data.json。在 构建脚本 scripts/build.mjs 的createDataJSON函数中项目正是用 Node.js 的path.basename从每个命令的 Markdown 文件路径中提取命令名进而生成每个命令对应的访问路径// 命令路径 json[p] /${path.basename(mdPath, .md).replace(/\\/g, /)};这与 shell 中basename的语义完全一致传入/xxx/command/basename.mdpath.basename(mdPath, .md)返回basename再拼上前缀/得到/basename这样的页面路由。也就是说我们在终端里用 basename 提取文件名项目构建时用同名思路提取命令名——同一个概念贯穿了脚本编程与 Node.js 工具链。最终生成的 dist/data.json 中即可看到basename: {n: basename, p: /basename, d: 打印目录或者文件的基本名称}这样的索引条目。从源码看路径处理的重要性该项目 README.md 提到仓库搜集了 600 多个 Linux 命令全部命令文档都以command/命令名.md的扁平结构存放。若没有 basename / path.basename 这类剥离路径、提取组件的能力无论是构建脚本的索引生成还是脚本中对用户输入路径的二次加工都会因为目录层级、后缀差异而变得繁琐易错。这正是 basename 命令在真实工程中被反复使用的原因。小结什么时候该用 basename场景推荐写法从完整路径中取文件名basename /home/jim/program.c→program.c从完整路径中取去后缀的基名basename /home/jim/program.c .c→program构造同前缀异后缀的输出名OFILE\basename $1 .c.o批量循环中为每个文件生成派生名name$(basename $file .tar.gz)只取目录部分配套命令dirname /home/jim/program.c→/home/jimbasename 虽小却是 Shell 脚本中最基础也最可靠的文件路径处理工具之一。掌握它与 dirname 的配合再结合本文给出的命令替换写法你就能在处理文件批量转换、日志归档、备份命名等任务时写出不依赖路径层级、稳健可移植的脚本逻辑。更多命令详解可在本仓库 command 目录 中按需查阅。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐SerenityOS basename 命令详解路径基名提取的实现原理与实战用法SerenityOS basename 命令详解路径基名提取的实现原理与实战用法 basename 是 SerenityOS 用户态提供的一个标准路径处理工具操作系统内核驱动NotepadNext命令行批处理脚本自动重命名文件NotepadNext命令行批处理脚本自动重命名文件 引言告别繁琐的手动重命名 你是否还在为以下场景头疼 摄影爱好者上千张照片需要按日期_事件_序号桌面应用代码编辑器【免费下载】 Linux命令行与Shell脚本编程大全【linux常用命令大全】Linux命令行与Shell脚本编程大全 第3版 PDF全本 21MB 百度网盘下载 简介 本仓库提供了一本关于Linux命令行与Shell脚本编程的全方位教程上一篇Puppeteer AwaitableIterable统一同步与异步可迭代集合的类型设计与查询系统源码解析下一篇WPF 内存泄漏排查:3 个陷阱加 1 份清单,内存降 60%创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

红柚蛋糕做法详解:HowToCook 空气炸锅版单人果味蛋糕完全指南

红柚蛋糕做法详解:HowToCook 空气炸锅版单人果味蛋糕完全指南

文档教程 【免费下载链接】HowToCook Programmers guide about how to cook at home. 项目地址: https://gitcode.com/GitHub_Trending/ho/HowToCook 点击查看 免费下载 导读 本文基于 HowToCook 开源食谱仓库中的 红柚蛋糕 菜谱,系统讲解一道用空气炸…

2026/9/30 2:02:29 阅读更多 →
Web 抓取中的 Unicode 处理:Firecrawl 字符编码检测与多语言内容解码实战

Web 抓取中的 Unicode 处理:Firecrawl 字符编码检测与多语言内容解码实战

网页爬虫后端AI 应用 【免费下载链接】firecrawl The web data API to search, scrape, and interact at scale. 🔥 项目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl 点击查看 免费下载 Unicode 处理是 Web 抓取中最容易被低估、却又最能决…

2026/9/30 2:02:29 阅读更多 →
3ds Max到WebGL的三维交付链:gltf、TypeScript与性能实战

3ds Max到WebGL的三维交付链:gltf、TypeScript与性能实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 2:13:58 阅读更多 →

最新新闻

Mistral微调实战:用LoRA/QLoRA打造专属模型

Mistral微调实战:用LoRA/QLoRA打造专属模型

把模型变成自己的,Mistral也能“调教”出专属风格Mistral 系列写到这里,前面几篇聊了基础认知、本地部署、API 调用、推理优化,基本上你已经能把 Mistral 7B、Mixtral 这类模型跑起来了。但跑起来只是第一步,真正让它在你的业务场…

2026/10/1 4:41:07 阅读更多 →
iOS设备部署OpenClaw全攻略:远程宿主、a-shell与iSH方案对比

iOS设备部署OpenClaw全攻略:远程宿主、a-shell与iSH方案对比

没开玩笑,我在iPad上折腾OpenClaw折腾了整整一个周末,踩完坑之后只有一个感想:这事能成,而且比想象中有价值,但前提是别用“在手机上装服务器”的思路去理解它。OpenClaw这类工具,本质上是一个能帮你把AI能…

2026/10/1 4:41:07 阅读更多 →
axios凭什么成为前端异步请求首选?从原理到封装的完全指南

axios凭什么成为前端异步请求首选?从原理到封装的完全指南

1. 项目概述:从一次面试回答说起先讲个我实际经历过的场景。团队招前端,我问候选人:“项目里发请求用什么?”对方很痛快地回答“axios”。“那为什么不用fetch?它可是浏览器原生的。”候选人愣了一下,想了半…

2026/10/1 4:41:07 阅读更多 →
Docker Compose部署Prometheus+Grafana监控栈:从配置到告警实践

Docker Compose部署Prometheus+Grafana监控栈:从配置到告警实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 4:41:07 阅读更多 →
AI归纳不得回流事实层:15条否证检查与写隔离落地实践

AI归纳不得回流事实层:15条否证检查与写隔离落地实践

1. 为什么“AI归纳不得回流事实层”值得单独拎出来讲1.1 从一个真实踩坑场景说起去年下半年,我参与了一个内部知识库的改造项目。这个知识库的定位很明确:底层是经过人工审核的“事实层”,存放的是产品参数、合同条款、运维手册、故障处理记录…

2026/10/1 4:41:07 阅读更多 →
稀疏奖励下的强化学习:事后经验重放(HER)原理与工程实践

稀疏奖励下的强化学习:事后经验重放(HER)原理与工程实践

我从"hindsight"这个词切入,聊一个在强化学习里非常经典的思路。做RL的工程师和研究者应该都听过Hindsight Experience Replay(事后经验重放,简称HER),这个思路最早由OpenAI在2017年提出,核心就一…

2026/10/1 4:40:07 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →