如何找出Homebrew中最久未使用的文件以清理冗余应用
查找Homebrew安装的最久未使用二进制文件
问题背景
在Mac上用Homebrew安装大量应用后,brew update耗时过长,需要找出长期未使用的应用进行清理,目标是定位/usr/local/bin中关联Cellar/Cask的最久未访问文件。
关键说明
你之前用ls -la查看的是软链接的修改时间,并非实际二进制文件的最后访问时间,所以需要追踪到链接指向的真实文件,再按访问时间排序。
具体命令
方法1:按时间戳排序(精确排序)
find /usr/local/bin -type l -exec readlink {} \; | grep -E "(Cellar|Cask)" | sed 's/^\.\.\///' | xargs -I {} stat -f "%a %N" "/usr/local/{}" 2>/dev/null | sort -n
输出中最上方的文件就是最久未被访问的,%a是访问时间的时间戳,数值越小代表时间越久。
方法2:按可读时间排序(直观查看)
find /usr/local/bin -type l -exec readlink {} \; | grep -E "(Cellar|Cask)" | sed 's/^\.\.\///' | xargs -I {} stat -f "%Sa %N" "/usr/local/{}" 2>/dev/null | sort
%Sa会输出人类可读的访问时间(如Jun 4 2023),排序后最顶部的即为最久未使用的文件。
补充清理建议
- 找到长期未用的文件后,可通过
brew list确认对应的包名,再用brew uninstall <包名>卸载 - 用
brew leaves列出所有无依赖的顶层包,结合访问时间判断清理优先级,避免误删依赖包 - 定期执行
brew cleanup清理旧版本的包文件,减少磁盘占用
内容的提问来源于stack exchange,提问作者Polo
相关产品推荐
相关产品推荐

