Featured image of post Finder 文件夹大小不显示?批量开启“计算所有大小”

Finder 文件夹大小不显示?批量开启“计算所有大小”

介绍 Finder Folder Sizes 如何批量开启已有列表视图的文件夹大小显示,解释 .DS_Store 设置、Finder 重启和未保存视图的限制。

作者: 小景

文章来源: https://jingyuan-zheng.github.io/zh/p/finder-folder-sizes/

Finder Folder Sizes 是一个 macOS 命令行工具,可以递归检查文件夹树中已有的列表视图设置,批量开启 Finder 的“计算所有大小”。

一个文件夹明明占了不少空间,Finder 的“大小”列却只显示横线,这是很常见的情况。只处理当前文件夹时,先切换到列表视图,按 ⌘J 打开“显示查看选项”,勾选“计算所有大小”即可。

例如备份盘里有“2023”“2024”“2025”三个归档目录,各自又有照片和文档子目录。一个个进入并按 ⌘J 勾选很费时间。这个工具适合在这些目录已经使用 Finder 列表视图时,一次检查并开启已有的大小设置。Finder Folder Sizes 提供的 finder-sizes 命令,以及可选 Finder 快速操作,主要解决的是这个批量设置问题。

它修改的是视图设置

Finder 会把视图偏好保存在 .DS_Store 中,而且一个文件夹自身的设置,有时记录在父目录的 .DS_Store 里。只找当前文件夹内部的文件,并不一定能找到正确记录。

工具会检查父目录记录和目标目录下已有记录,只开启 calculateAllSizes,保留排序、分组、列宽、图标大小等其他偏好。它不会新建 .DS_Store,也不会补造缺失的列表视图记录。

因此,它不能保证每个从未保存过视图的文件夹都立刻显示大小。真正的大小计算仍由 Finder 完成,文件多的时候也需要等待。

用独立 Python 环境安装

项目需要 macOS、Python 3.10 或更新版本,以及 ds-store 1.3.3。可以使用虚拟环境,避免影响系统 Python:

1
2
3
4
5
git clone https://github.com/Jingyuan-Zheng/finder-folder-sizes.git
cd finder-folder-sizes
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

直接运行源码时,保留这个虚拟环境。README 也提供了把命令安装到 ~/.local/bin 的方法;采用那种方式时,同样要确保执行命令的 Python 能导入 ds_store。

在需要处理的目录执行

可以先记住项目里的命令位置,再切换到要处理的文件夹:

1
2
3
tool_path="$PWD/finder-sizes"
cd "/你的归档目录"
"$tool_path"

请替换路径,并保持虚拟环境处于激活状态。命令会先提示确认,再开始写入。

为了让缓存中的视图设置落盘,工具会关闭受影响的 Finder 窗口。确实发生修改后,还会重启 Finder,并检查设置是否保留。所以,先完成 Finder 正在执行的复制或移动,再确认运行。

回到 Finder 后,文件夹大小可能先显示 --,等 Finder 计算完成再出现数字;外接盘和大型目录通常更慢。报告中“实际修改数”为零时,先看看是否原本就已开启,或目标文件夹还没有保存过适用的列表视图。

第一次先用一个小目录确认效果

可以先找一个已经常用 Finder 列表视图打开的归档目录,里面只放少量子文件夹。确认当前不在复制文件,再运行命令。提示里的 Target 应当与自己准备处理的目录一致;不一致就直接按回车取消,回到终端检查 cd 去了哪里。命令的目标由当前目录决定,不是由 Finder 最前面的窗口决定。

执行结束后,把报告里的三个数量分开看。“扫描目录”代表走过多少文件夹;“找到的列表视图设置”代表其中有多少适用的记录;“修改记录”才是实际从关闭变成开启的部分。目录多、修改少并不矛盾,也不需要为了让数字好看而反复运行。

再用 Finder 打开目标和一两个常用子目录,切换到列表视图,观察“大小”列。若刚开始仍是横线,给 Finder 一点计算时间;若某个目录完全没有变化,按 ⌘J 检查它自己的选项。工具只处理已有设置,所以新建目录或从未保存过视图的目录,仍可能需要先手动设置一次。

终端能运行,右键菜单却失败

终端和 Finder 启动程序时使用的环境可能不同。在终端激活了 .venv,只会改变这个终端会话;Finder 不会自动知道该去哪里找同一个 Python。因此,能在命令行导入 ds_store,只是确认了其中一个入口。

安装快速操作前,先按项目说明把命令放进 ~/.local/bin,再确认工作流可以找到能够导入依赖的 Python。如果提示找不到命令,检查安装位置;如果提示缺少模块,检查解释器和依赖是否属于同一环境。不要为了消除报错而把不同版本的包到处安装,先把调用关系理顺。

菜单中没有出现动作时,先确认工作流已经安装,再按 README 退出并重新打开 Finder。选中一个文件夹进行首次验证最清楚;多选文件时,工具会把文件映射到父目录并去重,实际处理范围可能比文件名列表看起来更大。确认框里的目录才是应该核对的对象。

开启大小显示后,仍要给 Finder 时间

这项设置不会生成一份可以永久复用的容量清单。Finder 还要读取目录内容才能计算,在文件很多的外接盘上尤其明显。如果一次打开大量归档文件夹,计算也可能持续一阵;这时应先等待,而不是再次运行脚本。

容量数字还要结合目录含义理解。看到一个素材文件夹占空间大,可以先检查里面是什么,再决定整理方式;工具不会找重复文件,也不会替你选择哪些照片值得删除。它改的是显示偏好,不能直接作为清理硬盘的结论。

以后不想继续批量使用时,可以只移除快速操作,保留命令,也可以按 README 卸载命令。卸载不会自动关闭已经启用的 Finder 选项;想恢复某个目录的显示习惯,仍可在 Finder 的“显示查看选项”里手动调整。这样能把“是否安装工具”和“当前目录怎样显示”分开管理。

想从右键菜单使用

仓库提供 install-quick-action.sh,用于安装 Finder 快速操作。先按 README 把 finder-sizes 安装到 ~/.local/bin,确认 Quick Action 调用的 Python 也能导入 ds_store,再在仓库目录运行 ./install-quick-action.sh。只在当前终端激活虚拟环境,不一定能让 Finder 里的快速操作找到同一环境。

选中文件夹时处理该目录;选中文件时处理父目录。多选会去重目标,并在执行前确认。这仍然是批量调整 Finder 偏好,不是另建一份永久保存文件夹大小的数据库。

查找不同目录中的文件可以配合 MacHunt 使用。记录处理细节及卸载方式见 项目 README。

隐私政策 网站地图 仪表盘
由 Hugo & Stack v4.0.3
本站已运行 0 天