automator 无法直接识别重复文件,需作为调度器调用 fdupes/jdupes 命令行工具或 easy duplicate finder 等第三方工具;必须设置安全机制如移至废纸篓、加时间限制、排除关键路径并记录日志。

Mac 自带的 Automator 本身不能直接识别内容重复的文件(比如两张相似但像素略有差异的图片,或同名不同内容的文档),它不内置哈希比对、二进制分析或语义识别能力。它的核心作用是“按规则执行操作”,比如“删除某文件夹里所有后缀为 .tmp 的文件”或“运行一段 Shell 脚本”。因此,真正实现“识别并删除重复文件”,需要把 Automator 当作调度器,配合系统命令或第三方工具完成识别环节。
用 Automator 调用命令行工具识别重复文件
macOS 原生支持 fdupes 或 jdupes(需通过 Homebrew 安装),它们能基于文件内容生成哈希值,准确找出重复项。Automator 可封装其调用逻辑:
- 打开 Automator,新建“快速操作”或“应用程序”;
- 添加“运行 Shell 脚本”操作,Shell 选
/bin/zsh,传递输入设为“无输入”; - 输入类似命令:
cd ~/Downloads && fdupes -r -f . | grep -v "^$" | xargs -I {} rm -f "{}"
(该命令递归扫描 Downloads 文件夹,列出非重复文件,其余全删;请先测试,避免误删); - 保存后,可绑定到访达右键菜单,或配合日历/launchd 定时触发。
用 Automator + AppleScript 调用专业工具
像 Easy Duplicate Finder 或 Duplicate Cleaner Pro(Mac 版)提供命令行接口或 AppleScript 支持。Automator 中加入“运行 AppleScript”操作,调用其扫描与清理指令:
- 脚本示例(假设有 CLI 工具路径):
do shell script "/Applications/DuplicateCleaner.app/Contents/MacOS/dccmd --scan ~/Documents --delete-duplicates"; - 注意:需提前确认该工具是否支持无界面模式,且授权已配置;
- AppleScript 可附加判断逻辑,例如仅当磁盘剩余空间低于 10GB 时才执行清理。
规避风险的关键设置
重复文件清理极易误删,Automator 流程中必须嵌入安全机制:
-
绝不直接删除:改用
mv {} ~/.Trash/或移动到临时隔离文件夹,人工复核后再清空废纸篓; - 加时间限制:用
find配合-mtime +30,只处理 30 天以上未访问的重复项; - 排除关键路径:在脚本中用
! -path "*/.git/*" ! -path "*/Library/*"过滤系统和项目目录; - 记录日志:在 Shell 脚本末尾追加
echo "$(date): deleted $(ls -1 ~/.Trash/ | wc -l) files" >> ~/Desktop/clean-log.txt。
更稳妥的替代方案
如果目标是日常轻量清理,不必强求 Automator 全包:
- iTunes 内置“显示重复项目”,适合音乐库;
- Photos 应用可手动筛选“相似照片”,开启“回忆”智能聚合;
- Calibre-Web-Automator 提供电子书重复检测与批量删除,专用于藏书管理;
- 第三方工具如 Easy Duplicate Finder(GUI 直观+预览+分组标记)更适合普通用户,Automator 只需负责启动它。











