macOS无一键清理开关,但可通过系统机制+定时任务实现定期安全清理:一、启用废纸篓30天自动删除;二、用launchd每周清Downloads中30天前文件;三、配置日志轮转与空间限制;四、Automator+日历图形化定时清理。

macOS 没有“自动清理垃圾文件夹”的一键开关,但可通过组合启用系统原生机制 + 轻量定时任务,让 Downloads、缓存、日志等高频堆积目录实现**定期、安全、不干扰使用**的自动清理。关键不是全盘删除,而是按需设定保留周期,避免手动遗漏。
一、自动清空废纸篓(系统级唯一内置自动删除)
这是 macOS 唯一真正由系统守护进程(com.apple.storagekitd)周期执行的自动清理行为,无需脚本:
- 打开访达 → 顶部菜单栏“访达”→“偏好设置”→“高级”→勾选“30天后移除废纸篓中的项目”
- 该设置同时作用于本地废纸篓和 iCloud 同步的废纸篓(若已开启 iCloud 桌面与文稿)
- 设置后若未立即响应,终端运行
killall Finder刷新即可
二、定时清理下载文件夹(最安全见效快)
Downloads 是用户最常堆积临时文件的位置,且误删风险极低。推荐用系统原生 launchd 每周自动清理 30 天前的文件:
- 创建清理脚本(如
~/bin/clean-downloads.sh):
#!/bin/bash<br>find ~/Downloads -type f -mtime +30 -delete
- 赋予执行权限:
chmod +x ~/bin/clean-downloads.sh - 新建 launchd 配置:
~/Library/LaunchAgents/com.user.clean-downloads.plist,内容含:
<key>StartCalendarInterval</key><br><dict><key>Hour</key><integer>2</integer><key>Minute</key><integer>0</integer></dict>
(每周日凌晨2点执行)
三、自动轮转压缩系统与用户日志
/var/log 和 ~/Library/Logs 不会自动归档,但可激活系统机制防止无限膨胀:
-
/var/log:确认
/etc/newsyslog.conf中 system.log 行末含z(gzip 压缩)标志,且第4列设为7(保留7天)、第5列为5(最多5个归档) -
~/Library/Logs:用 launchd 定期清理旧日志,例如:
find "$HOME/Library/Logs" -name "*.log" -mtime +90 -delete - 统一日志(/var/db/diagnostics/)设空间上限:
sudo log config --mode "keep-rolling-1GB"(系统将自动淘汰最旧归档周期)
四、借助 Automator + 日历实现图形化定时清理
适合不想接触终端的用户,全程图形界面操作:
- Automator 新建“快速操作”,添加“运行 Shell 脚本”,输入:
find ~/Downloads -type f -mtime +7 -delete - 保存为“清理旧下载”,勾选“在‘访达’中可用”
- 打开“日历”,新建每日重复事件,在提醒中选择“运行快速操作”→选中刚建的名称
- 确保 Mac 未启用“低电量模式”,且处于唤醒状态(合盖时可能不触发)
所有操作均基于 Apple 官方设计路径,不依赖第三方工具,也不修改系统核心文件。重点在于明确每个目录的合理保留周期,而非追求“彻底清空”。


















