跳转到内容

清理空间

在 SpaceKnife 里按一个键不会立刻删掉任何东西。想删的东西先进删除篮:删除篮先算出能释放多少、检查哪些正被占用或受保护,然后才移到回收站(默认)或永久删除,两条路都留有退路。

在任意块上右键:文件、文件夹或小项聚合块都可以。目标块先被选中,菜单紧挨着它弹出,菜单里的动作都作用于你点的那一项。用键盘时,对选中的块按 Shift+F10 或 Menu 键。详情面板顶部的「更多操作」按钮打开的也是同一个菜单。

菜单头显示完整名称,下一行是「大小 · 类别 · 所在文件夹」,有标签时右侧显示标签形状。

菜单项 按键 作用
打开 文件用默认程序打开;文件夹在文件管理器中打开。
在资源管理器中显示 Ctrl+E 打开所在文件夹并选中这一项。macOS 上是「在访达中显示」,Linux 上是「在文件管理器中显示」。
在此打开终端 Ctrl+` 在这个文件夹(对文件则是它所在的文件夹)打开终端。Windows 上是 Windows Terminal(wt.exe),macOS 上是「终端」,Linux 上是 x-terminal-emulator。
复制路径 ▸ Ctrl+C 复制「原样」 四种格式,每项都预览实际会复制的文本(见下文)。
加标签 ▸ Ctrl+1–4、Ctrl+0 「红色标签」「黄色标签」「绿色标签」「蓝色标签」「清除标签」。见标签与文件类别。
只看这里(放大) Enter 放大进入这一项,和双击相同。对当前已经放大进入的文件夹不显示。
重新扫描此文件夹 把这个文件夹连同其下内容重新读一遍;对文件则是它所在的文件夹。见实时监控。
加入删除篮 Delete 见下面的删除篮。
系统菜单… 显示为灰色:当前版本不可用。

表里的按键不打开菜单也能用:只要树图有焦点,就作用于选中的块(在过滤框里输入时除外,那里的 Ctrl+C 照常复制文字)。

不适用的项显示为灰色,悬停时说明原因。小项聚合块不是一个具体位置(「小项聚合块不是一个具体位置」),所以打开、显示、终端和复制路径都不可用,也不能加标签,但可以加入删除篮。MFT 快速扫描里的 NTFS 元数据与孤立文件在磁盘上没有对应的位置,文件类操作对它们不可用。

菜单里的键盘操作:↑ / ↓ 移动(首尾循环),→ 或 Enter 展开子菜单,← 或 Esc 收起子菜单,Enter 执行高亮项,Esc 关闭菜单。点菜单以外的地方、调整窗口大小或切到别的窗口,菜单也会关闭。

四种格式都由后端生成,所以每个前端的结果完全一致。

格式 Windows Linux / macOS
原样 C:\Users\lenny\Downloads\big file.iso /home/lenny/My Videos/it's.mp4
带引号 "C:\Users\lenny\Downloads\big file.iso" '/home/lenny/My Videos/it'\''s.mp4'
POSIX 路径 /mnt/c/Users/lenny/Downloads/big file.iso 与「原样」相同
file:// URI file:///C:/Users/lenny/Downloads/big%20file.iso file:///home/lenny/My%20Videos/it%27s.mp4
  • Linux 和 macOS 上的「带引号」用单引号,路径里的 ' 写成 '\''。单引号里 shell 什么都不展开($、反引号、!),粘进任何 shell 都能直接用。
  • Windows 上的「POSIX 路径」是 WSL 形式:盘符小写,放在 /mnt/ 下。网络路径 \\nas\share\x 变成 //nas/share/x。
  • 「file:// URI」按 RFC 8089 生成:空格、非 ASCII 字符和保留字符按 UTF-8 做百分号编码。网络路径变成 file://nas/share/x。
  • 选中块后按 Delete(Mac 键盘上是 fn+Delete)。
  • 右键菜单或详情面板里的「加入删除篮」。
  • 在过滤结果列表的某一行上按 Delete:先过滤,再用 ↓ 逐行往下,看中的就加入。
  • 命令面板里的「加入删除篮」。

加入时不确认,也不碰磁盘,只弹一句提示:「已加入删除篮」「已经在删除篮里」,或者「不能删除:…」加上原因。

小项聚合块:右键选「加入删除篮」,删除篮里多出一项「{n} 个小项」,挂在它所在的文件夹下。它只包含加入那一刻块里的那些文件:同一文件夹里单独成块的大文件不算,之后新出现的文件也不算。(Delete 键不加入小项聚合块,请用右键菜单。)

嵌套关系自动处理:

  • 同一路径不会加入两次。
  • 加入一个文件夹时,篮里已有的它里面的项并入这个文件夹(「已加入删除篮(并入了篮里的 3 项)」)。
  • 要加入的项已经被篮里某个文件夹包含时,不会新增条目。

删除篮属于整个程序,不属于某个标签:来自不同标签的项可以同时待在篮里。退出 SpaceKnife 时删除篮清空。

工具栏最右边的删除篮按钮上显示篮里的项数。点它(或在命令面板里运行「打开删除篮」)打开抽屉,它代替侧栏的位置;再点一次或点「×」关闭。开合不改变篮里的内容。

  • 可释放:删除后能释放的总量,大字显示。
  • 容量条:要释放最多的那个卷:已用|删除篮|可用。下面一行如「C:\ 可用 182.4 GB › 271.6 GB」,后一个数是删除后的可用空间,右侧是卷的总容量。
  • 待删除:篮里的项,可按「按大小」「按名称」「按位置」排序。每行有名称、标签、所在文件夹、大小和占篮比例,以及移出删除篮的「×」(不改动磁盘)。
  • 合计和回收站说明:「移到回收站后,空间要等清空回收站才会释放」,附带这个卷的回收站当前占用,或者哪些卷没有回收站。
  • 「…」按钮清空删除篮,不删除任何文件。
  • 按占用(磁盘上实际占的空间)计,不按逻辑大小。
  • 嵌套的项只算一次。
  • 有多个硬链接的文件,只有所有名字都在篮里时才算;否则删掉其中一个名字释放不了空间,记为 0。
  • 云端占位文件(只在云端存着的文件)记为 0。
  • 被占用的项照样计入:程序放开它之后就能释放。

有些项留在篮里,下面带一行警告,抽屉底部显示「{n} 项现在不能删除,执行时会跳过」。

警告 原因
正在被 {names} 使用,需先退出 别的程序正打开着它。Windows 上能说出程序名(Restart Manager);Linux 查看 /proc 里打开的文件,只看你有权查看的进程;macOS 用 lsof。加入时检查一次,删除前再检查一次。
已不存在 它已在 SpaceKnife 之外被删除或移走。
受保护的系统位置,不能删除 见受保护的位置。

磁盘上的文件变化后,删除篮在安静约一秒后重新核对:大小跟着变,消失的项被标出来。

「移到回收站」是主按钮,点了立即执行,不再确认。

  • 提示条显示进度(「正在移到回收站 1,204 / 18,406…」)和「停止」。停止后已完成的部分保持完成,其余留在篮里。
  • 完成后显示「已移到回收站 {n} 项({size})」。失败的项带着原因留在篮里,日志面板(Ctrl+J)里有记录。
  • 「撤销(5 秒)」把这次移走的项全部放回原处,并重新放回删除篮。原位置已经有了同名的新文件时不会覆盖(「原位置已有同名项目,未覆盖」)。

「永久删除…」不经过回收站。

  1. 弹出确认框「永久删除 {n} 项({size})?」:「不进回收站,无法从回收站还原。执行前有 5 秒可以撤销。」焦点在「取消」上,直接按 Enter 就是取消。
  2. 确认后提示条倒计时「{n} 项将被永久删除」,带「撤销(5 秒)」。这时什么都还没碰;点「撤销」就作废,项留在篮里。关掉提示条不会作废。
  3. 倒计时结束开始删除,显示进度和「停止」。在一个文件夹删到一半时停止,可能留下删了一部分的文件夹(「已取消,其中一部分已删除」)。
  4. 完成后提示释放了多少:「已永久删除 {n} 项,释放 {size}」。

同一时间只执行一个文件操作。

无论哪种方式,每一项在动手前都再核对一次:仍然存在、仍然不受保护、没有被占用。没通过的跳过,留在篮里。

删除之后树图跟着变:实时监控开着时,变化作为文件变化到达(块消失、父块闪烁);关着时,SpaceKnife 把受影响的父文件夹重新读一遍。

有些位置根本不能加入删除篮,加入时提示「不能删除:…」和原因。下表中「本身」表示这个文件夹不能删,但其中的单项可以删。路径中的链接会先解析,所以通过链接指向受保护文件夹的路径同样受保护。

受保护
所有平台 卷的根目录。挂载着另一个卷的文件夹。SpaceKnife 自己的数据目录,以及正在运行的程序所在目录。
Windows C:\Windows 及其下全部内容(C:\Windows\Temp 里的内容除外)。Program Files、Program Files (x86)、ProgramData 本身。C:\Users 本身、每个用户主目录本身,以及你的 AppData、AppData\Local、AppData\LocalLow、AppData\Roaming 本身。系统盘上的 Recovery、Boot、EFI、$WinREAgent、bootmgr、BOOTNXT。任意卷上的 pagefile.sys、hiberfil.sys、swapfile.sys、$Recycle.Bin、System Volume Information。
Linux /bin、/boot、/dev、/etc、/lib、/lib32、/lib64、/libx32、/proc、/run(/run/media、/run/user、/run/mount 里面的内容除外)、/sbin、/sys、/usr、/efi 及其下全部内容。软件包数据库 /var/lib/dpkg、/var/lib/rpm、/var/lib/dnf、/var/lib/pacman。/var、/var/lib、/var/log、/var/cache、/var/tmp、/tmp、/opt、/srv、/mnt、/media、/snap、/lost+found 本身。/home 本身、每个用户主目录本身、/root。你的 ~/.config、~/.local、~/.local/share、~/.local/state 本身。回收站目录。
macOS /System、/bin、/sbin、/usr、/dev、/etc、/private/etc、/private/var/db、/private/var/vm、/Library/Apple、/cores 及其下全部内容。/Applications、/System/Applications、/Library、/Volumes、/private、/private/var、/private/tmp、/var、/tmp、/opt 本身。/Users 本身、每个用户主目录本身。你的 ~/Library、~/Library/Application Support、~/Library/Mobile Documents、~/.config、~/.local、~/.local/share、~/.local/state 本身。~/.Trash 和 .Trashes。

SpaceKnife 内置一套约 110 条的规则,描述常见的文件夹和文件:它们是什么、能不能清理。目前它出现在快照对比里:命中规则的变化项,名称后面带一个短注。举几个例子:

类别 可能看到的短注
虚拟机与容器 Docker 数据、WSL 磁盘、虚拟机、模拟器
开发 依赖安装(node_modules)、虚拟环境、包缓存、构建缓存、工具链、IDE 缓存
浏览器与应用 浏览器缓存、应用缓存、微信数据、Telegram 缓存
游戏 Steam 库、游戏更新、着色器缓存、创意工坊
AI 模型 大模型、模型缓存
系统 系统更新、系统升级、休眠文件、虚拟内存、系统组件、还原点、临时文件、缩略图缓存、崩溃转储、系统日志

短注说明它是什么,不代表可以放心删除。SpaceKnife 真正拒绝删除的,是上面受保护的位置里列出的那些。

按键 作用
Delete 把选中项加入删除篮
Shift+F10 / Menu 选中项的右键菜单
Ctrl+C 复制路径(原样)
Ctrl+E 在资源管理器 / 访达 / 文件管理器中显示
Ctrl+` 在此打开终端
Ctrl+1–4、Ctrl+0 红、黄、绿、蓝标签;清除标签(树图有焦点时不按 Ctrl 也行,除非在标签设置里关掉了)
Enter 放大进入选中项
结果列表里:Delete、Space、Enter 加入删除篮、在图上定位、放大进入

macOS 上凡是写 Ctrl 的地方都可以用 ⌘。全部按键见快捷键。

一年没动过的大文件:按 /,输入 >1gb;>1y(占用大于 1 GB、修改于一年之前)。点结果列表的第一行,用 ↓ 往下走,该删的按 Delete。打开删除篮,「按位置」排序核对一遍,然后「移到回收站」。

只清一个文件夹里的零碎:放大进入那个文件夹,右键它的小项聚合块,「加入删除篮」只带走这些小文件,旁边的大文件不动。

清理前后对照:大扫除之前先保存快照(命令面板 ›「保存快照」,0.3.2 起也可以按 Ctrl+S)。清理后和「现在」对比,切到「减少」,看真正少了什么。

把路径交给终端:选中后用「复制路径 › 带引号」粘进 shell,「POSIX 路径」给 WSL;或者直接按 Ctrl+` 在那里打开终端。