README file from
GithubFile Commander
一个强大的 Obsidian 批量文件管理插件,支持批量选择、删除、移动文件,以及迁移未完成任务。
功能特性
- ✅ 批量选择文件(全选/取消全选)
- ✅ 批量删除文件
- ✅ 批量移动文件到指定文件夹
- ✅ 批量打标签(支持添加到文件开头、末尾或 frontmatter)
- ✅ 批量替换标签(支持关键词重命名)
- ✅ 批量重命名 frontmatter 元数据属性
- ✅ 图片重命名(文件名-001):将选中笔记内嵌入的图片按出现顺序重命名为
笔记名-001、笔记名-002等 - ✅ 图片转相对路径:将图片链接转换为相对路径,兼容 Typora 等编辑器
- ✅ 图片转最简路径:将图片链接转换为仅文件名的最简路径
- ✅ 按文件夹筛选文件
- ✅ 按标签筛选文件
- ✅ 查找失效图片链接(支持 URL 编码路径,如
%20不会误判) - ✅ 查找未引用图片:找出 assets 等配置文件夹下未被任何笔记引用的图片
- ✅ 查找无标签笔记
- ✅ 查找孤立笔记(无入链和出链)
- ✅ 查找空文件
- ✅ 显示选中文件数量统计
- ✅ 右键菜单快速操作
- ✅ 点击文件名快速打开
- ✅ 文件列表按路径排序
安装方法
方式一:从 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) - 查找未引用图片: 找出「图片文件夹」配置(如 assets)下未被任何笔记引用的图片,便于清理
- 查找无标签笔记: 查找没有任何标签的笔记
- 查找孤立笔记: 查找既没有入链也没有出链的笔记
- 查找空文件: 查找空白或只有 frontmatter 的文件
- 按标签筛选: 按一个或多个标签筛选文件
- 按文件夹筛选: 只显示指定文件夹中的文件
- 刷新: 重新加载文件列表
批量重命名元数据属性
这是一个强大的功能,可以批量修改 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 会自动在配置的图片文件夹中查找
- 链接更简洁,便于阅读
查找未引用图片
在「图片文件夹」设置(如 assets)下,找出没有被任何笔记引用的图片文件,方便清理无用附件。
- 在设置中配置好「图片文件夹」(多个用逗号分隔,如
assets,attachments) - 点击「查找未引用图片」按钮
- 列表会显示这些文件夹下所有未被
![[...]]或[[...]]引用的图片 - 可对结果进行删除、移动等批量操作
说明: 只扫描配置的图片文件夹及其子文件夹,扩展名以「图片扩展名」为准。
标签管理
批量打标签:
- 支持添加到文件开头、末尾或 frontmatter(可在设置中配置)
- 多个标签用空格分隔,例如:
#todo #important
批量替换标签:
- 支持关键词重命名,例如将
#cy替换为#餐饮 - 标签可以带或不带
#符号
筛选功能
按标签筛选:
- 支持多标签筛选(OR 关系)
- 显示包含任意选中标签的文件
- 可搜索标签
按文件夹筛选:
- 选择特定文件夹查看其中的笔记
- 支持搜索文件夹
- 可与标签筛选组合使用
快捷操作
- 点击文件名:打开文件
- 右键文件:显示快捷菜单(打开、删除)
- 勾选复选框:选择/取消选择文件
设置选项
在插件设置中可以配置:
标签设置:
- 默认标签:批量打标签时的默认值
- 标签位置:选择标签添加到文件开头、末尾或 frontmatter
图片扫描设置:
- 扫描外部图片:是否检查外部链接(http/https)的图片
- 图片扩展名:要扫描的图片文件扩展名(也用于「图片重命名」和「查找失效图片」)
- 图片文件夹:图片存储的文件夹路径
注意事项
- 删除操作不可撤销,请谨慎使用
- 移动文件时会自动创建目标文件夹
- 如果目标位置已存在同名文件,移动操作会失败
- 重命名元数据属性时,只会修改 frontmatter 中的属性名,不会修改属性值
- 批量操作前建议先备份重要文件
- 查找失效图片时,支持 URL 编码的图片路径(如
%20表示空格),不会将有效图片误判为失效
开发
# 开发模式
npm run dev
# 构建
npm run build
# 部署到本地vault
npm run deploy
# 发布到GitHub
npm run release
技术栈
- TypeScript
- Obsidian API
- esbuild
许可证
MIT
☕ 请作者喝杯咖啡
如果这个插件帮助了你,欢迎扫码打赏,感谢支持!