用阴影勾出文件夹
立体阴影让每个文件夹微微隆起,不用画分隔线,也能看出文件夹从哪里开始、到哪里结束。强度在 View ▸ Cushion Strength 里选,有 Flat、Subtle、Normal 和 Strong 四档。
7× 速度:扫描同一个个人文件夹,对比 GrandPerspective
Layland 扫描你的磁盘,把每个文件画成一个方块,大小和它占用的空间成正比。那台被你忘掉的 38 GB 虚拟机,一眼就能看到。一个有 330 万个文件的个人文件夹,14 秒扫完。
10 月 31 日前:$5.99,原价 $9.99 · 14 天内无理由退款
14 天内无理由退款
macOS 15 Sequoia 或更高版本 · Apple silicon 和 Intel · 原生 Swift


问题所在
访达把文件夹显示成列表,而列表看不出大小。“储存空间”设置把你一半的磁盘归进“系统数据”,然后就不管了。du 要花一分多钟才能走完一个个人文件夹,最后吐出满屏的数字。
矩形树图能在一个屏幕里展示整个磁盘。每个文件是一个方块,大小和它占的空间成正比;每个文件夹则是由这些方块拼成的一大块。大的东西,看上去就大。被遗忘的 Xcode 模拟器、22 GB 的 Docker 镜像、2023 年就已交付的项目留下的渲染文件,一眼就能认出来,然后一个个处理掉。
仔细看看






.zip,不匹配的全部变暗。即使有数百万个文件,也只要大约 50 毫秒。

.zip,都会汇成一个区块。速度
别的磁盘工具让你等得足够去泡杯咖啡,等扫描结束,你早就没了兴致。Layland 快到你随时好奇都能扫一下。下面是真实计时:整个个人文件夹,330 万个文件,以十倍速回放。
~ · 332 万个文件 · 50 万个文件夹
du -sk
0.0 s
| 文件夹 | 文件数 | 文件夹数 | GrandPerspective | Layland | 快了多少 |
|---|---|---|---|---|---|
~/dev | 155 万 | 23.4 万 | 42.2 秒 | 6.3 秒 | 6.7× |
~/Library | 89.2 万 | 12.6 万 | 31.2 秒 | 4.3 秒 | 7.2× |
~(个人文件夹) | 332 万 | 50 万 | 97.5 秒 | 14.2 秒 | 6.9× |
MacBook Pro,Apple silicon,8 核,24 GB 内存。macOS 26.6,内置 SSD 上的 APFS,缓存已预热,两个 app 都已获得完全磁盘访问权限。GrandPerspective 3.8.1 从源代码编译,和官网下载的版本一样不启用沙盒,按它自己的日志行计时。两个 app 报告的文件夹数量一致。
底层原理
它用原生 Swift 编写,没有任何依赖。扫描的瓶颈在于 SSD 的响应速度,而不在 CPU,所以 Layland 让 SSD 自始至终都忙着。
getattrlistbulk(2) 一次就能返回一批目录项,连同它们的类型、大小、inode 和标志。也就是说,不用对每个文件调用 stat,不用 FileManager,也不用 URL 对象。
每个文件夹都是队列里的一个工作项,由一个线程池来处理,每个核心大约四个线程,所以 SSD 手上总有几个请求在排队。领先 du 的优势,大部分来自这里。
每个文件夹都用 openat 相对于它的父文件夹打开,系统每次只需查找一个名称,而不必每次都把完整路径解析一遍。
每个文件或文件夹都是一条 48 字节的记录,放在同一个扁平数组里,所有名称共用一块缓冲区。380 万个条目只占大约 180 MB,扫描过程中既不分配内存,也不做引用计数。
硬链接只计一次。扫描不会跨出所在的宗卷,但会跟随 APFS 的 firmlink(比如 /Users),所以扫描 / 得到的总数和访达显示的一致。
功能
立体阴影让每个文件夹微微隆起,不用画分隔线,也能看出文件夹从哪里开始、到哪里结束。强度在 View ▸ Cushion Strength 里选,有 Flat、Subtle、Normal 和 Strong 四档。
视频、压缩包、代码和照片各有各的颜色。也可以按最后修改日期着色,从今天一直到五年多以前,把那些你多年没碰过的东西找出来。
Show Free Space 会把可用空间,连同扫描范围之外的所有内容,一起加到图上。这样你就能看出一个文件夹在整个磁盘里占了多少。
输入文件名的一部分,其余的全部变暗,即使有数百万个文件,也只要大约 50 毫秒。包含匹配项的文件夹也会一起亮起。按 ⌘G 跳到下一个。
按空格键,用快速查看预览任何文件。不用离开这张图,就能在访达中显示它,或者把它移到废纸篓。删除之前,总会先问过你。
方向键在相邻的方块之间移动。⌘[ 选中外面一层的文件夹,⌘] 选中其中最大的项目,敲几下键就能一路找到最大的那个文件。
.layland 文件是压缩过的:一个含 380 万个文件的个人文件夹,存下来只有 64 MB,重新打开只要 0.3 秒,以后回来看不必再扫一遍。
从五种内置调色板里挑,或者在实时编辑器里自己调一套,挑颜色时它会用每个类别给你看一个样例。调色板想存多少就存多少。
图的布局和绘制都在后台进行。380 万个文件大约 50 毫秒就能排好;拖动窗口边缘时,上一帧画面会先拉伸填满,所以从不卡住。
隐私
Layland 只读取文件名、大小和日期,别的一概不读。它不会打开你的文件,也没有地方可以把它们发出去。没有账号,没有统计分析,也没有崩溃报告。
它只发出两种请求,都不带任何关于你文件的信息。你输入许可证密钥时,它会向 Gumroad 确认密钥是否有效,之后大约每月再确认一次。另外,如果它问你时你同意了,它每天会来这个网站检查一次有没有新版本。
想看到全部内容,包括 ~/Library 里其他 app 的数据,请在系统设置中给 Layland 完全磁盘访问权限。没有这项权限,Layland 只统计 macOS 允许它读取的文件夹,而且读取“桌面”“文稿”和“下载”之前会先问你。
价格
免费版可以扫描任何文件夹或磁盘,画出完整的图。许可证则加上清理时用得着的细节。
10 月 31 日前:$5.99,原价 $9.99 · 14 天内无理由退款14 天内无理由退款
$9.99 一次性
一次付费,没有订阅
.layland 扫描文件许可证密钥会通过电子邮件发给你。把它粘贴到 Layland ▸ License,app 立刻解锁。14 天内无理由退款。源代码是公开的,你也可以读一读,或者自己编译。
常见问题
思路是一样的:GrandPerspective 和 Disk Inventory X 也画矩形树图,DaisyDisk 画的是环形图。区别在速度。同一个个人文件夹,Layland 14 秒扫完,GrandPerspective 要 97 秒。其余就是细节:立体阴影、按时间着色、可用空间视图、快速搜索,以及调整窗口大小时不卡顿。
不是必需的,但没有它,macOS 会把 ~/Library 的一部分和其他 app 的容器藏起来,而空间往往就耗在那里。有了完全磁盘访问权限,Layland 算出的总数就和访达的一致。这个 app 只读取名称、大小和日期。
有许可证的话,它可以把文件移到废纸篓:选中一个文件,然后选择 Item ▸ Move to Trash 并确认。它从不永久删除任何东西,所以你可以像平常一样从废纸篓里放回去。
能。选择那个驱动器,或者上面的任何文件夹。扫描只在你选的宗卷里进行,不会跨到其他已装载的驱动器上,所以数字只反映这一个驱动器。
暂时没有。它直接从这个网站分发,用 Apple Developer ID 签名,并经过 Apple 公证。沙盒化的 App Store 版本已在计划之中。
任何运行 macOS 15 Sequoia 或更高版本的 Mac,Apple silicon 或 Intel 都可以。在内置 SSD 上最快,因为它本来就是为了同时发出大量请求、让 SSD 一直忙着而设计的。
能。它以 FSL-1.1-ALv2 许可证发布,每个版本发布两年后转为 Apache 2.0。可以在 github.com/daformat/layland 阅读,或者自己编译。
它在你的购买收据邮件里,也在你的 Gumroad 资料库中 Layland 的条目下。
下载下来,让它扫一遍你的个人文件夹,亲眼看看。
10 月 31 日前:$5.99,原价 $9.99 · 14 天内无理由退款
14 天内无理由退款