README file from
GithubFile Commander
一个强大的 Obsidian 批量文件管理插件,支持批量选择、删除、移动文件,以及迁移未完成任务。
功能特性
- ✅ 批量选择文件(全选/取消全选)
- ✅ 批量删除文件
- ✅ 批量移动文件到指定文件夹
- ✅ 批量打标签(支持添加到文件开头、末尾或 frontmatter)
- ✅ 批量替换标签(支持关键词重命名)
- ✅ 批量重命名 frontmatter 元数据属性
- ✅ 图片重命名(文件名-001):将选中笔记内嵌入的图片按出现顺序重命名为
笔记名-001、笔记名-002等 - ✅ 图片转相对路径:将图片链接转换为相对路径,兼容 Typora 等编辑器
- ✅ 图片转最简路径:将图片链接转换为仅文件名的最简路径
- ✅ 按文件夹筛选文件
- ✅ 按标签筛选文件
- ✅ 查找失效图片链接(支持 URL 编码路径,如
%20不会误判) - ✅ 查找失效文件链接:支持 wiki link 和标准 Markdown 链接,兼容最简路径与相对路径
- ✅ 一键修正失效文件链接:扫描后自动更新所有能推荐出新路径的失效链接
- ✅ 一键修复失效图片链接:扫描后自动把失效图片链接更新为推荐的新路径(wiki/Markdown 两种语法,保留
|尺寸参数) - ✅ 查找未引用图片:找出 assets 等配置文件夹下未被任何笔记引用的图片
- ✅ 查找重复笔记:识别 iCloud 冲突命名(
a.md/a 1.md/a 2.md)与内容完全相同的笔记 - ✅ 查找无标签笔记
- ✅ 查找孤立笔记(无入链和出链)
- ✅ 查找空文件
- ✅ 重命名笔记并更新 Markdown 链接:右键重命名单个笔记,或批量查找替换重命名,自动同步全库
[文本](路径.md)链接 - ✅ 显示选中文件数量统计
- ✅ 右键菜单快速操作
- ✅ 点击文件名快速打开
- ✅ 文件列表按路径排序
安装方法
方式一:Obsidian 社区市场安装(推荐)
打开 Obsidian 设置 → 第三方插件 → 浏览,搜索 File Commander 或 fengshuzi 即可安装。
方式二:从 GitHub Release 安装(推荐)
- 前往 Releases 页面下载最新版本
- 下载以下文件:
main.jsmanifest.jsonstyles.css
- 在你的 Obsidian 库中创建插件目录:
.obsidian/plugins/file-commander/ - 将下载的文件复制到该目录
- 重启 Obsidian 或刷新插件列表
- 在设置中启用"File Commander"插件
方式三:手动安装
cd /path/to/your/vault/.obsidian/plugins
git clone https://github.com/你的用户名/file-commander.git
cd file-commander
npm install
npm run build
使用方法
批量文件管理
- 点击左侧边栏的文件图标,或使用命令面板搜索 "打开批量文件管理器"
- 在右侧面板中会显示所有 Markdown 文件
- 勾选要操作的文件
- 使用工具栏按钮进行批量操作:
- 全选: 选中所有文件
- 取消全选: 取消所有选中
- 批量打标签: 为选中的文件添加标签
- 批量替换标签: 将选中文件中的旧标签替换为新标签
- 重命名元数据属性: 批量修改 frontmatter 中的属性名(例如将
category改为type) - 删除选中: 批量删除选中的文件(移入回收站,可恢复)
- 移动选中: 批量移动文件到指定文件夹
- 图片重命名(文件名-001): 将选中笔记内的嵌入图片按顺序重命名为
笔记名-001、笔记名-002等,并更新库内所有引用 - 图片转相对路径: 将
转换为相对路径格式,兼容 Typora - 图片转最简路径: 将
转换为最简路径格式 - 查找失效图片: 查找包含失效图片链接的笔记(支持 URL 编码的图片路径,如
60.Java%20中能创建%20volatile数组吗-001.png) - 查找失效文件链接: 查找 wiki link 或标准 Markdown 链接中目标文件已不存在的笔记,支持最简路径与相对路径,并给出修正建议
- 一键修正失效文件链接: 扫描后直接自动修正所有能推荐出新路径的失效文件链接
- 修复失效图片: 扫描失效图片链接并按完整文件名推荐新路径,预览确认后一键修正(保留
![[img.png|300]]的尺寸参数) - 查找未引用图片: 找出「图片文件夹」配置(如 assets)下未被任何笔记引用的图片,便于清理
- 重复笔记: 查找 iCloud 冲突命名(
a 1.md)和内容完全相同的重复笔记 - 查找无标签笔记: 查找没有任何标签的笔记
- 查找孤立笔记: 查找既没有入链也没有出链的笔记
- 查找空文件: 查找空白或只有 frontmatter 的文件
- Markdown 格式检测: 检查任务列表、标题、列表缩进、未闭合代码块,以及没有配置 language 的围栏代码块
- 按标签筛选: 按一个或多个标签筛选文件
- 按文件夹筛选: 只显示指定文件夹中的文件
- 刷新: 重新加载文件列表
批量重命名元数据属性
这是一个强大的功能,可以批量修改 markdown 文件 frontmatter 中的属性名:
- 选择要修改的文件
- 点击"重命名元数据属性"按钮
- 输入旧属性名(例如:
category) - 输入新属性名(例如:
type) - 点击确定
插件会自动:
- 检查每个文件是否有 frontmatter
- 查找指定的旧属性名
- 保留原有的格式和缩进
- 将属性名替换为新名称
- 保持属性值不变
示例:
修改前:
---
category: 餐饮
status: active
---
修改后:
---
type: 餐饮
status: active
---
图片重命名(文件名-001)
将选中笔记内嵌入的图片按出现顺序重命名为「笔记名-001」「笔记名-002」等格式,并自动更新库内所有引用。
- 在批量文件管理视图中勾选要处理的笔记(.md),可多选
- 点击「图片重命名(文件名-001)」按钮
- 插件会按笔记内图片出现顺序依次重命名为
笔记名-001.扩展名、笔记名-002.扩展名等 - 若同文件夹下已有该命名,会自动使用下一个可用编号
- 重命名后会更新整个库中所有指向该图片的链接(wiki 链接与 Markdown 图片链接)
说明: 仅处理笔记中通过 ![[...]] 或  引用的图片,扩展名以插件设置中的「图片扩展名」为准。
图片路径风格切换
Obsidian 支持最简路径(仅文件名),但 Typora 等编辑器需要相对路径才能正确显示图片。
图片转相对路径:
- 将
转换为格式 - 将
![[image.png]]转换为格式 - 自动计算笔记到图片的相对路径
- 兼容 Typora、VSCode 等 Markdown 编辑器
图片转最简路径:
- 将
转换为格式 - Obsidian 会自动在配置的图片文件夹中查找
- 链接更简洁,便于阅读
查找失效文件链接
检查笔记中指向其他文件(非图片)的链接是否失效,支持 wiki link 和标准 Markdown 链接,并给出修正建议。
支持的链接格式:
- Wiki link:
[[工作/供应商预研任务分解-模板|供应商预研任务分解-模板]] - Markdown link:
[供应商预研任务分解-模板](工作/供应商预研任务分解-模板.md)
路径兼容性:
- 最简路径:如
[[供应商预研任务分解-模板]]或[文本](供应商预研任务分解-模板.md),插件会按文件名全局查找匹配文件 - 相对路径:如
[文本](../工作/供应商预研任务分解-模板.md),插件会相对于当前笔记解析 - URL 编码路径:如
%20等编码字符不会被误判为失效
使用步骤:
- 点击「查找失效文件链接」按钮
- 插件会扫描整个库中所有 Markdown 文件
- 文件列表会显示包含失效链接的笔记
- 弹出检查报告,列出每个失效链接和自动推荐的新路径
- 点击「使用建议路径」逐个修正,或点击「批量应用」一键修正所有可推荐的链接
- 如果自动推荐不准确,可点击「手动指定」输入正确路径
一键自动修正:
- 点击工具栏「一键修正失效文件链接」,插件会先扫描全库
- 弹出预览确认窗口,列出所有可自动推荐新路径的失效链接及建议路径
- 点击「确认修正」后才会执行替换
- 无法自动推荐的路径不会出现在预览中,可在修正后使用「查找失效文件链接」查看并手动处理
- 修正完成后会提示成功/失败数量,并自动刷新文件列表
说明: 该功能只检查内部文件链接,外部链接(http/https)会被忽略;图片链接已由「查找失效图片」处理,不会重复检查。
查找未引用图片
在「图片文件夹」设置(如 assets)下,找出没有被任何笔记引用的图片文件,方便清理无用附件。
- 在设置中配置好「图片文件夹」(多个用逗号分隔,如
assets,attachments) - 点击「查找未引用图片」按钮
- 列表会显示这些文件夹下所有未被
![[...]]或[[...]]引用的图片 - 可对结果进行删除、移动等批量操作
说明: 只扫描配置的图片文件夹及其子文件夹,扩展名以「图片扩展名」为准。
修复失效图片链接
当图片被移动或重命名导致笔记中的图片链接失效时,可一键修复:
- 点击「查找与筛选 ▾」→「修复失效图片」
- 插件扫描全库,弹出预览窗口,列出每个失效图片链接及按完整文件名推荐的新路径
- 确认后自动替换;
![[img.png|300]]中的尺寸参数会保留 - 未匹配到唯一同名图片的链接不会改动
查找重复笔记
识别两类重复:
- iCloud 冲突命名:同目录下
a.md与a 1.md、a 2.md这类带空格数字后缀的文件 - 内容完全相同:正文(屏蔽代码块、忽略空白差异)一致的笔记
点击「查找与筛选 ▾」→「重复笔记」,结果会列在文件列表中,可配合批量删除/移动清理。
重命名笔记并更新链接
- 单个重命名:文件列表右键 →「重命名」,输入新名称后自动更新其他笔记中指向它的
[文本](路径.md)Markdown 链接(wiki 链接[[...]]由 Obsidian 自动更新)。 - 批量重命名:勾选多个文件 →「批量操作 ▾」→「批量重命名」,对文件名做查找替换(支持正则),预览确认后执行并同步更新链接。
标签管理
批量打标签:
- 支持添加到文件开头、末尾或 frontmatter(可在设置中配置)
- 多个标签用空格分隔,例如:
#todo #important
批量替换标签:
- 支持关键词重命名,例如将
#cy替换为#餐饮 - 标签可以带或不带
#符号
筛选功能
按标签筛选:
- 支持多标签筛选(OR 关系)
- 显示包含任意选中标签的文件
- 可搜索标签
按文件夹筛选:
- 选择特定文件夹查看其中的笔记
- 支持搜索文件夹
- 可与标签筛选组合使用
快捷操作
- 点击文件名:打开文件
- 右键文件:显示快捷菜单(打开、删除)
- 勾选复选框:选择/取消选择文件
设置选项
在插件设置中可以配置:
标签设置:
- 默认标签:批量打标签时的默认值
- 标签位置:选择标签添加到文件开头、末尾或 frontmatter
图片扫描设置:
- 扫描外部图片:是否检查外部链接(http/https)的图片
- 图片扩展名:要扫描的图片文件扩展名(也用于「图片重命名」和「查找失效图片」)
- 图片文件夹:图片存储的文件夹路径
注意事项
- 删除操作不可撤销,请谨慎使用
- 移动文件时会自动创建目标文件夹
- 如果目标位置已存在同名文件,移动操作会失败
- 重命名元数据属性时,只会修改 frontmatter 中的属性名,不会修改属性值
- 批量操作前建议先备份重要文件
- 查找失效图片时,支持 URL 编码的图片路径(如
%20表示空格),不会将有效图片误判为失效 - 查找失效文件链接时,支持 wiki link、标准 Markdown 链接、最简路径与相对路径
开发
# 开发模式
npm run dev
# 构建
npm run build
# 部署到本地vault
npm run deploy
# 发布到GitHub
npm run release
技术栈
- TypeScript
- Obsidian API
- esbuild
许可证
MIT
☕ 请作者喝杯咖啡
如果这个插件帮助了你,欢迎扫码打赏,感谢支持!