跳转到内容

第一次扫描

每个新标签都从启动页开始:选好要扫描的位置,看一眼两三个选项,按 Enter。扫描进行中视图就会边扫边画,不用等扫完就可以放大、四处看。

左栏是「选择要扫描的位置」:卷、路径框和扫描选项,底部是「开始扫描」。右栏最上面是「本机磁盘」卡片(一眼看到这台电脑的盘,点开是完整的一页),下面是「最近」:以前的扫描和快照文件。

每个卷一张卡片:名称(Windows 上是盘符和卷标,Linux、macOS 上是挂载点)、文件系统、介质和容量,一条显示已用与可用空间的容量条,以及一个说明会怎样扫描的徽标:

徽标 含义
「MFT 快速扫描」 Windows 上整个本地 NTFS 卷:读取主文件表,几秒完成。
「MFT 快速扫描 · 需要管理员」 同上,但 Windows 会先请求管理员授权。
「并行硬扫描」 并行地逐个文件夹读取。
「并行硬扫描 · USB HDD 自动降速」 USB 接口的机械硬盘:同时读的文件夹更少,因为寻道会拖慢机械硬盘。
「网络扫描 · 较慢」 网络驱动器。
「不推荐 · 很慢」 在 WSL 里经 9P 协议访问的 Windows 盘,悬停可以看原因。

暂时不能扫描的卷(没有介质、网络卷未连接、无法读取)仍然列出,但变灰,并写明原因。插拔驱动器后,列表几秒内会自己更新;「刷新」立即重新读取。打开启动页时默认选中系统卷。

用键盘:Tab 进入卡片组,方向键移动选中项(← → 移一张,↑ ↓ 移两张),Enter 开始扫描。

卷下面的「或输入路径(多个路径用 ; 分隔)」可以填一个或多个文件夹:

C:\Users\lenny\Videos; D:\Downloads
~/Videos; ~/Downloads
  • ~ 代表你的用户目录。输入的正好是某个卷的根(D:\、/)时,会改为选中那张卷卡片。
  • 停止输入片刻后自动校验。路径不存在、不是文件夹或无法访问时,路径框下方写明是哪个路径、什么原因,「开始扫描」不可用。
  • 一个路径包含在另一个里时自动合并(「… 已包含在 … 中,将合并扫描」)。
  • 多个路径一起扫描,在同一个视图里作为并列的根。
  • 在路径框里按 Enter 直接开始扫描。

「浏览…」打开系统的文件夹选择对话框,可以多选,选中的文件夹追加到路径框末尾。也可以从文件管理器把文件夹拖到窗口任意位置:路径会填进路径框(不会自动开始扫描)。拖入 SpaceKnife 快照文件(.sks)则直接打开它;其他文件不接受。

路径下面的选项只作用于这一次扫描。默认值取自「设置 › 扫描与性能」,在这里改不会改动设置。

选项 什么时候出现 选择
「扫描方式」 Windows 上选中整个本地 NTFS 卷时 「自动」「快速 MFT」「硬扫描」(详见下文)
「磁盘负载上限」 总是 「极速」「均衡 70%」「安静 35%」「空闲」(详见下文)
「扫描 NTFS 备用数据流」 Windows 上选中整个本地 NTFS 卷时 统计附加在文件上的隐藏数据流(MFT 快速扫描时计入)

底部一行写明这次扫描会怎么做,例如 C: · 自动(MFT 快速扫描) · 磁盘负载上限 均衡 ≤70%。需要提权时下面还有一行:「需要管理员权限:仅启动只读扫描助手,主程序不提权」。

每次扫描完成都会保存快照(除非你关掉了),「最近」列出每个位置最新的一份和它的时间:卷显示大小、扫描方式和文件数,文件夹显示路径和大小。每一条都有:

  • 「打开」:立即显示这份快照,不重新扫描。快照是过去的状态,不监控变化;对文件的操作只对现在仍然存在的项可用。
  • 「与现在对比」:把快照和同一位置现在的状态对比,需要时先扫描。见快照与对比。

「查看全部扫描记录」列出所有快照,而不只是每个位置最新的一份。「…」菜单里有「刷新列表」和「打开快照文件夹」。列表下方可以把快照文件拖到「把快照文件拖到这里」,或者点「打开快照文件…」。

SpaceKnife 有两种读盘方式:

方式 怎么做 适用于
MFT 快速扫描 通过一个以管理员权限运行的只读扫描助手,一次读完 NTFS 主文件表(MFT)。整盘几秒完成。 Windows 上整个本地 NTFS 卷
硬扫描 逐个文件夹遍历,同时读多个。耗时随文件数量增长。 所有位置:文件夹、其他文件系统、网络驱动器、Linux 与 macOS

选中整个 NTFS 卷时,「自动」和「快速 MFT」都用 MFT 快速扫描,「硬扫描」则逐个文件夹读取。其他位置不显示「扫描方式」这一行:只能硬扫描。

提权的只有扫描助手,SpaceKnife 本身从不提权。启动助手时 Windows 弹出一次管理员授权,期间扫描显示「正在等待管理员授权…」。

  • 同意:用 MFT 快速扫描。
  • 拒绝:改用硬扫描继续,「扫描详情」里写明原因。之后还可以切换过去(见中途改用 MFT 快速扫描)。
  • 完全不弹窗:SpaceKnife 本身已经以管理员身份运行,或者上一次快速扫描的助手还在运行。助手空闲 10 分钟后退出,下次快速扫描会再请求一次。

「设置 › 扫描与性能 › 需要时请求管理员权限」可以关掉授权请求:没有管理员权限时直接硬扫描。「设置 › 高级 › 扫描助手」显示助手是否在运行,并有「停止扫描助手」。

因为直接读文件表,MFT 快速扫描和硬扫描有几处不同:

  • 能看到硬扫描无权打开的文件夹,比如 System Volume Information。
  • 文件系统自己的文件放在 $NTFS 元数据 文件夹里,找不到父文件夹的条目放在 $孤立文件 里。它们在磁盘上没有可以打开或删除的位置。
  • 云占位文件保留 MFT 里记录的占用(硬扫描按 0 计)。
  • 备用数据流只在打开「扫描 NTFS 备用数据流」时计入(硬扫描从不读取数据流)。

它分几个阶段:「正在等待管理员授权…」「正在读取 MFT 主文件表…」「正在接收扫描结果…」「正在建立目录树…」。读完后一次建好目录树,所以视图在最后才出现;硬扫描则是边扫边画。

整个 NTFS 卷的硬扫描进行中时,「扫描详情」里有「以管理员身份启用 MFT 快速扫描」(「约 … 秒完成 · 仅启动只读扫描助手」)。助手启动期间硬扫描照常进行;助手就绪后,用它的结果替换整棵树。拒绝授权的话,硬扫描继续。

  • 只在一个卷内:挂载在文件夹下的其他卷不进入,除非打开「设置 › 扫描与性能 › 跨越挂载点」。
  • 不跟随符号链接。
  • 有多个硬链接的文件只计一次(「设置 › 扫描与性能 › 硬链接计算」)。
  • macOS 上扫描 / 时不进入 /System/Volumes/Data:它的文件已经通过系统的 firmlink 在树里了。只在云端的文件按 0 计,扫描也不会触发下载。

扫描读盘太猛会拖慢别的程序。这个上限限制的是 SpaceKnife 自己造成的磁盘读取占用:

档位 作用
「极速」 不限制。
「均衡 70%」 最多占用 70% 的磁盘读取,给前台程序留出余量。默认档位。
「安静 35%」 最多 35%,几乎感觉不到。
「空闲」 只在磁盘空闲时读取,并使用系统低 I/O 优先级。
「自定义」 自己定的百分比,5–100%。
  • 「占用」按磁盘的请求队列折算。任务管理器口径的「活动时间」只作参考,显示在旁边:NVMe 固态盘上几个并发读就会让活动时间到 100%,而盘远没有忙满。
  • 「整盘繁忙时让路」打开时(默认),其他程序让整块磁盘超过上限,扫描就降到最低进度,「扫描详情」里提示「其他程序正在大量读写这块磁盘,扫描已让路(最低进度)」。
  • MFT 快速扫描是一次顺序读取:档位放慢读取节奏,不分并发。

启动页提供前四档。扫描进行中可以在「扫描详情 › 磁盘负载上限」随时改档(方向键在档位间移动,「自定义」带滑块),半秒内生效。扫描时点状态栏的磁盘负载项也会打开这个面板。

默认值在「设置 › 扫描与性能」:「手动扫描默认」(均衡)、「自定义上限」、「空闲时使用系统低 I/O 优先级」以及并发相关设置。怎么调,见性能。

视图上方的进度条显示:

  • 百分比(扫描结束前最多 99%;无法估算时显示「…」)和进度条;
  • 「正在扫描」和目标名称;
  • 整个卷是「已扫描 … / 已用 …」,文件夹是「已扫描 …」,以前扫过的文件夹还有「(上次 … 项)」;
  • 项数、每秒项数和剩余时间(开始时显示「正在估算…」);
  • 「当前」和正在读取的文件夹。

估算的依据:这个位置以前扫描过时,按项数和上次扫描比;否则整个卷用已扫描的占用和已用空间比,最多算到 95%;第一次扫描的文件夹不显示百分比,剩余时间一直是「正在估算…」。

不用等它扫完:Enter 放大进入选中的块,Backspace 后退,Ctrl+Home 回到根。见导航。

扫描进行中、没有选中任何块时,右侧面板显示「扫描详情」。选中一个块后改为显示它的详情,按 Esc 取消选中就回到扫描详情。「收起侧栏」「显示侧栏」可以收起和重新打开面板。

  • 「扫描方式」:实际用的方式;是硬扫描时写明原因(「硬扫描(未获得管理员权限)」「硬扫描(目标不是整个本地 NTFS 卷)」)。
  • 「磁盘负载上限」:各档位,以及「当前」(SpaceKnife 最近 1 秒自己造成的占用)、「整盘」和「活动时间」。
  • 「磁盘读取占用 · 近 60 秒」:SpaceKnife 的占用是一条线,上限是虚线,整盘是面积,另有活动时间和扫描开始的位置。
  • 「整盘读取」:整块磁盘的读取速度和平均延迟(包括其他程序)。
  • 「并发」和「进行中」,以及「自动调节」:关掉后可以手动设定并发数(1–64)。
  • 「… 个文件夹无法访问」,带「查看日志」和一个示例路径。这些文件夹计入未知空间。

状态栏显示扫描状态和项数、「实时监控」、磁盘负载和卷的可用空间。点第一项打开日志面板(Ctrl+J):「日志」列出本次会话的事件,比如无法读取的文件夹;「扫描统计」里有扫描方式、状态、开始、结束、耗时、文件 / 文件夹、已扫描合计、未知空间、无法访问和平均吞吐。

标签标题上也会显示「扫描中」「已暂停」「未完成」或「扫描失败」。

操作 在哪里 结果
「暂停」 进度条右侧,或命令面板里的「暂停扫描」 不再发出新的读取;SpaceKnife 的读盘在 1 秒内归零。只有硬扫描能暂停:MFT 快速扫描几秒就完成。
「继续」 进度条右侧,或「继续扫描」 从暂停的地方接着扫。
「停止」 进度条右侧,或「停止扫描」 结束扫描,保留已经读到的结果(「已停止(结果保留)」),标签显示「未完成」。
「继续扫描」 状态栏,或「继续已停止的扫描」 读取停止的硬扫描还没读到的文件夹(「还有 … 个文件夹没有读取」),树从停下的地方接着长。

停止的扫描不会自动保存快照。想按现状留下来,在命令面板里运行「保存快照」(0.3.2 起也可以按 Ctrl+S)。继续的扫描读完以后,和正常完成的扫描一样自动保存。

关闭标签会停止它的扫描。

  • 自动保存快照(「设置 › 高级 › 扫描后自动保存快照」)。每个位置保留最近 10 份,更早的每周保留一份(「保留最近快照数」)。
  • 实时监控打开时(默认),从扫描开始就在跟踪变化;之后变化继续进来,变化的块会闪烁。见实时监控。
  • 窗口在后台时会提醒你:Windows 任务栏闪烁、macOS 程序坞图标弹跳、Linux 窗口紧急提示(「设置 › 常规 › 扫描结束时若窗口在后台则闪烁提醒」)。

扫描整个卷时,在卷根除了文件还有两个块:

  • 「可用空间」:卷报告的可用空间。
  • 「未知空间」:卷报告的已用空间减去扫描到的合计,也就是 SpaceKnife 看不到的部分:无权读取的文件夹、没有「完全磁盘访问权限」时 macOS 保护的位置,以及文件系统占用了、却不属于任何文件的空间。MFT 快速扫描能看到卷的更多部分(受保护的系统文件夹、文件系统自己的文件),留下的未知空间更少。

按 F、U,或点工具栏里的「可用空间」「未知空间」芯片,可以隐藏或显示它们,其他块按比例放大填满。扫描文件夹时没有这两个块,因为文件夹本身没有可用空间。新视图是否显示它们,在「设置 › 可视化 › 新视图显示可用空间」和「新视图显示未知空间」里设置。视图里画的是什么,见可视化。

每个标签一次扫描。Ctrl+T 新开一个启动页标签,就能同时扫描好几个位置。

按键 作用
Ctrl+T 新建标签
Ctrl+W 关闭标签(同时停止它的扫描)
Ctrl+Tab 或 Ctrl+PageDown 下一个标签
Ctrl+Shift+Tab 或 Ctrl+PageUp 上一个标签
Ctrl+K 命令面板
Ctrl+J 日志面板

SpaceKnife 同时最多保留 8 个扫描和打开的快照;关闭标签可以腾出位置。