mac用户可用automator创建“快速操作”或“应用程序”配合shell脚本自动清理指定路径下超期临时文件,支持日历提醒或launchd后台定时执行,兼顾图形化易用性与系统级稳定性。

Mac 上用 Automator 自动删除特定时长前的临时文件,核心是把时间筛选逻辑(比如“7天前”)和安全删除动作封装进可视化工作流,再配合系统机制触发。不装第三方工具、不改系统配置,就能稳定运行。
用 Automator 快速操作 + 日历提醒定时执行
适合大多数用户,图形化操作,无需终端命令基础。
- 打开 Automator,新建“快速操作”文档
- 拖入“运行 Shell 脚本”操作,Shell 选
/bin/zsh,脚本框里写:find ~/Downloads -type f -mtime +7 -name "*.tmp" -delete
这行命令只删 Downloads 文件夹里、扩展名是
.tmp、且修改时间超过 7 天的普通文件 - 点右上角齿轮图标,勾选“工作流接收‘无输入’”,并启用“在‘访达’中可用”
- 保存为“清理7天前.tmp文件”
- 打开日历 App,新建一个每日重复事件(比如每天上午10点),添加提醒 → 选择“运行快速操作” → 找到刚保存的名称
- 确保 Mac 没开启“低电量模式”,且不是深度睡眠状态,日历提醒才能正常触发
用 Automator 应用程序 + launchd 后台定时运行
更可靠,不依赖图形界面是否登录,适合长期开机或服务器类使用。
- 在 Automator 中新建“应用程序”文档
- 加入“运行 Shell 脚本”,输入:
# 清理用户缓存中30天前的临时文件 find ~/.cache -type f -mtime +30 -delete 2>/dev/null # 同时清空废纸篓旧文件(可选) autotrash -d 30
- 保存为
AutoCleanTemp.app,建议放在~/Applications(若不存在请先创建) - 终端执行:
mkdir -p ~/Library/LaunchAgents touch ~/Library/LaunchAgents/com.user.tempclean.plist
- 用文本编辑器打开该 plist 文件,粘贴以下内容(示例:每天凌晨1点执行):
<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict><key>Label</key><string>com.user.tempclean</string><key>ProgramArguments</key><array><string>/usr/bin/open</string><string>-a</string><string>/Users/你的用户名/Applications/AutoCleanTemp.app</string></array><key>StartCalendarInterval</key><dict><key>Hour</key><integer>1</integer><key>Minute</key><integer>0</integer></dict></dict></plist>
注意把
你的用户名替换为实际用户名 - 重启 launchd 加载:
launchctl load ~/Library/LaunchAgents/com.user.tempclean.plist
加一层安全过滤,避免误删
临时文件常带特定后缀或位于固定路径,直接 -delete 前建议先预览匹配结果:
- 把
-delete换成-print,运行一次看列出哪些文件 - 排除正在被使用的文件:加
-not -exec lsof {} \; -quit判断(较复杂,日常清理可省略) - 跳过隐藏文件和文件夹:加
-not -path "*/.*" - 只处理一级目录(不递归子文件夹):加
-maxdepth 1
不复杂但容易忽略










