mac 上用 automator 实现“压缩并备份历史文件”需串联识别旧文件和压缩归档两步:先用 shell 脚本(如 find -mtime +90)筛选历史文件,再用 zip 或 tar 打包并添加时间戳,最后移至指定备份目录;支持快捷操作、launchd 定时或文件夹操作触发。
mac 上用 automator 实现“压缩并备份历史文件”,核心是把两个动作串起来:先识别旧文件,再压缩归档,最后存到指定位置。它不依赖第三方软件,全靠系统原生组件,关键在于选对触发方式和操作逻辑。
识别并筛选历史文件
所谓“历史文件”,通常指超过某天数、或满足特定命名/类型条件的文件。Automator 本身不直接支持按时间筛选,需靠 Shell 脚本完成:
- 在 Automator 工作流中添加“运行 Shell 脚本”操作,Shell 设为 /bin/zsh
- 输入命令如:
find ~/Documents -type f -mtime +90 -name "*.log"(找 Documents 下 90 天前的 .log 文件) - 若需保留路径信息供后续操作使用,建议用
find ... -print0配合while IFS= read -r -d '' file循环处理
批量压缩为归档包
筛选出的文件不能逐个压缩,应打包成一个 .zip 或 .tar.gz 文件,便于管理与传输:
- 继续用“运行 Shell 脚本”,将上一步结果传入压缩命令
- 例如:
zip -q -r "$HOME/Desktop/backup_$(date +%Y%m%d).zip" "$@" - 如需更小体积,可用
tar -czf替代 zip;加-q参数避免终端输出干扰 Automator 流程
自动存档并标记时间戳
压缩包生成后,建议自动重命名并移至专用备份目录,避免堆在桌面:
- 添加“移动 Finder 项目”操作,目标设为 ~/Documents/Archive_Backups/(提前建好该文件夹)
- 配合“重命名 Finder 项目”操作,选择“添加日期或时间”,格式选“年月日_时分”
- 这样每次生成的备份包名类似 backup_20260614_0822.zip,一目了然,不易覆盖
触发方式选一种即可
这个流程不是“开机就跑”,得靠某种机制启动:
- 快捷操作:保存为“快速操作”,右键文件夹 → “服务”里一键执行
-
定时执行:做成“应用程序”,再用 launchd 每周日凌晨自动运行(推荐 plist 中设
StartCalendarInterval) - 响应式触发:做成“文件夹操作”,把待检文件夹拖进指定监控目录,有新旧文件变动即启动
不复杂但容易忽略细节:Shell 脚本里的路径要用绝对路径(如 $HOME),别用波浪号 ~;压缩前确认目标目录存在,可加 mkdir -p 预置;首次运行建议手动测试一次输出效果,再开启自动调度。











