如何通过命令行快速查看HFS本地Time Machine快照大小?
快速查看HFS文件系统Time Machine本地快照大小的方法
当然可以!你说得没错,tmutil确实没有直接输出快照大小的命令,而du因为HFS快照的硬链接机制,不仅慢还会抛出一堆错误。好在系统已经把GUI里显示的快照大小缓存起来了,我们可以直接读取这些缓存数据,几秒钟就能得到结果,完全不用扫遍磁盘。
这里有两个靠谱的方法:
方法1:用system_profiler快速提取
system_profiler是macOS自带的系统信息查询工具,它会直接读取系统缓存的存储数据,和你在「关于本机 > 存储」里看到的来源一致。执行以下命令就能快速获取Time Machine快照的总大小:
system_profiler SPStorageDataType | grep -A 5 -B 2 "Time Machine Snapshots"
输出结果会类似这样:
Time Machine Snapshots:
Size: 123.45 GB (123456789012 bytes)
Backup Size: 123.45 GB
方法2:直接查询系统存储缓存数据库
macOS会把存储使用情况的统计数据存在SQLite缓存里,我们可以用sqlite3直接查询HFS快照的大小:
sqlite3 /var/db/disk-usage-analysis/StorageCache.sqlite 'SELECT volume_name, category_name, size FROM storage_usage WHERE category_name LIKE "%Snapshot%";'
这个命令会输出每个磁盘上快照的大小(单位是字节),你可以根据需要换算成GB/MB。
为什么这些方法比du快?
HFS的本地快照是通过硬链接共享文件的,du会遍历快照里的每个文件,重复计算共享内容,效率极低。而上面的方法都是读取系统提前计算好并缓存的数据,和GUI的逻辑完全一致,所以速度飞快。
内容的提问来源于stack exchange,提问作者Matteo
相关产品推荐
相关产品推荐

