File Commander

by fengshuzi
5
4
3
2
1
Score: 50/100
New Plugin

Description

Reviews

No reviews yet.

Stats

1
stars
downloads
0
forks
0
days
0
days
0
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
64
commits

Latest Version

7 hours ago

Changelog

Release 1.2.2

README file from

Github

File 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 Commanderfengshuzi 即可安装。

方式二:从 GitHub Release 安装(推荐)

  1. 前往 Releases 页面下载最新版本
  2. 下载以下文件:
    • main.js
    • manifest.json
    • styles.css
  3. 在你的 Obsidian 库中创建插件目录:.obsidian/plugins/file-commander/
  4. 将下载的文件复制到该目录
  5. 重启 Obsidian 或刷新插件列表
  6. 在设置中启用"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

使用方法

批量文件管理

  1. 点击左侧边栏的文件图标,或使用命令面板搜索 "打开批量文件管理器"
  2. 在右侧面板中会显示所有 Markdown 文件
  3. 勾选要操作的文件
  4. 使用工具栏按钮进行批量操作:
    • 全选: 选中所有文件
    • 取消全选: 取消所有选中
    • 批量打标签: 为选中的文件添加标签
    • 批量替换标签: 将选中文件中的旧标签替换为新标签
    • 重命名元数据属性: 批量修改 frontmatter 中的属性名(例如将 category 改为 type
    • 删除选中: 批量删除选中的文件(移入回收站,可恢复)
    • 移动选中: 批量移动文件到指定文件夹
    • 图片重命名(文件名-001): 将选中笔记内的嵌入图片按顺序重命名为 笔记名-001笔记名-002 等,并更新库内所有引用
    • 图片转相对路径: 将 ![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/image.png) 转换为 ![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/assets/image.png) 相对路径格式,兼容 Typora
    • 图片转最简路径: 将 ![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/assets/image.png) 转换为 ![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/image.png) 最简路径格式
    • 查找失效图片: 查找包含失效图片链接的笔记(支持 URL 编码的图片路径,如 60.Java%20中能创建%20volatile数组吗-001.png
    • 查找失效文件链接: 查找 wiki link 或标准 Markdown 链接中目标文件已不存在的笔记,支持最简路径与相对路径,并给出修正建议
    • 一键修正失效文件链接: 扫描后直接自动修正所有能推荐出新路径的失效文件链接
    • 修复失效图片: 扫描失效图片链接并按完整文件名推荐新路径,预览确认后一键修正(保留 ![[img.png|300]] 的尺寸参数)
    • 查找未引用图片: 找出「图片文件夹」配置(如 assets)下未被任何笔记引用的图片,便于清理
    • 重复笔记: 查找 iCloud 冲突命名(a 1.md)和内容完全相同的重复笔记
    • 查找无标签笔记: 查找没有任何标签的笔记
    • 查找孤立笔记: 查找既没有入链也没有出链的笔记
    • 查找空文件: 查找空白或只有 frontmatter 的文件
    • Markdown 格式检测: 检查任务列表、标题、列表缩进、未闭合代码块,以及没有配置 language 的围栏代码块
    • 按标签筛选: 按一个或多个标签筛选文件
    • 按文件夹筛选: 只显示指定文件夹中的文件
    • 刷新: 重新加载文件列表

批量重命名元数据属性

这是一个强大的功能,可以批量修改 markdown 文件 frontmatter 中的属性名:

  1. 选择要修改的文件
  2. 点击"重命名元数据属性"按钮
  3. 输入旧属性名(例如:category
  4. 输入新属性名(例如:type
  5. 点击确定

插件会自动:

  • 检查每个文件是否有 frontmatter
  • 查找指定的旧属性名
  • 保留原有的格式和缩进
  • 将属性名替换为新名称
  • 保持属性值不变

示例:

修改前:

---
category: 餐饮
status: active
---

修改后:

---
type: 餐饮
status: active
---

图片重命名(文件名-001)

将选中笔记内嵌入的图片按出现顺序重命名为「笔记名-001」「笔记名-002」等格式,并自动更新库内所有引用。

  1. 在批量文件管理视图中勾选要处理的笔记(.md),可多选
  2. 点击「图片重命名(文件名-001)」按钮
  3. 插件会按笔记内图片出现顺序依次重命名为 笔记名-001.扩展名笔记名-002.扩展名
  4. 若同文件夹下已有该命名,会自动使用下一个可用编号
  5. 重命名后会更新整个库中所有指向该图片的链接(wiki 链接与 Markdown 图片链接)

说明: 仅处理笔记中通过 ![[...]]![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/...) 引用的图片,扩展名以插件设置中的「图片扩展名」为准。

图片路径风格切换

Obsidian 支持最简路径(仅文件名),但 Typora 等编辑器需要相对路径才能正确显示图片。

图片转相对路径:

  • ![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/image.png) 转换为 ![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/assets/image.png) 格式
  • ![[image.png]] 转换为 ![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/assets/image.png) 格式
  • 自动计算笔记到图片的相对路径
  • 兼容 Typora、VSCode 等 Markdown 编辑器

图片转最简路径:

  • ![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/assets/image.png) 转换为 ![](https://raw.githubusercontent.com/fengshuzi/file-commander/HEAD/image.png) 格式
  • Obsidian 会自动在配置的图片文件夹中查找
  • 链接更简洁,便于阅读

查找失效文件链接

检查笔记中指向其他文件(非图片)的链接是否失效,支持 wiki link 和标准 Markdown 链接,并给出修正建议。

支持的链接格式:

  • Wiki link:[[工作/供应商预研任务分解-模板|供应商预研任务分解-模板]]
  • Markdown link:[供应商预研任务分解-模板](工作/供应商预研任务分解-模板.md)

路径兼容性:

  • 最简路径:如 [[供应商预研任务分解-模板]][文本](供应商预研任务分解-模板.md),插件会按文件名全局查找匹配文件
  • 相对路径:如 [文本](../工作/供应商预研任务分解-模板.md),插件会相对于当前笔记解析
  • URL 编码路径:如 %20 等编码字符不会被误判为失效

使用步骤:

  1. 点击「查找失效文件链接」按钮
  2. 插件会扫描整个库中所有 Markdown 文件
  3. 文件列表会显示包含失效链接的笔记
  4. 弹出检查报告,列出每个失效链接和自动推荐的新路径
  5. 点击「使用建议路径」逐个修正,或点击「批量应用」一键修正所有可推荐的链接
  6. 如果自动推荐不准确,可点击「手动指定」输入正确路径

一键自动修正:

  • 点击工具栏「一键修正失效文件链接」,插件会先扫描全库
  • 弹出预览确认窗口,列出所有可自动推荐新路径的失效链接及建议路径
  • 点击「确认修正」后才会执行替换
  • 无法自动推荐的路径不会出现在预览中,可在修正后使用「查找失效文件链接」查看并手动处理
  • 修正完成后会提示成功/失败数量,并自动刷新文件列表

说明: 该功能只检查内部文件链接,外部链接(http/https)会被忽略;图片链接已由「查找失效图片」处理,不会重复检查。

查找未引用图片

在「图片文件夹」设置(如 assets)下,找出没有被任何笔记引用的图片文件,方便清理无用附件。

  1. 在设置中配置好「图片文件夹」(多个用逗号分隔,如 assets,attachments
  2. 点击「查找未引用图片」按钮
  3. 列表会显示这些文件夹下所有未被 ![[...]][[...]] 引用的图片
  4. 可对结果进行删除、移动等批量操作

说明: 只扫描配置的图片文件夹及其子文件夹,扩展名以「图片扩展名」为准。

修复失效图片链接

当图片被移动或重命名导致笔记中的图片链接失效时,可一键修复:

  1. 点击「查找与筛选 ▾」→「修复失效图片」
  2. 插件扫描全库,弹出预览窗口,列出每个失效图片链接及按完整文件名推荐的新路径
  3. 确认后自动替换;![[img.png|300]] 中的尺寸参数会保留
  4. 未匹配到唯一同名图片的链接不会改动

查找重复笔记

识别两类重复:

  • iCloud 冲突命名:同目录下 a.mda 1.mda 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


☕ 请作者喝杯咖啡

如果这个插件帮助了你,欢迎扫码打赏,感谢支持!