Automator可通过“获取指定的 Finder 项”+“过滤 Finder 项”组合实现文件筛选,支持按名称、类型、日期、大小等条件;高级需求可用“运行 Shell 脚本”自定义逻辑,导出为快速操作或应用程序便于调用。
automator 本身不提供传统意义上的“文件过滤规则”(比如按扩展名、大小、日期动态筛选),但它能通过组合操作,实现类似效果——关键在于用“获取指定的 finder 项”+“过滤 finder 项”+后续处理动作,构建可复用的自动化流程。
用“过滤 Finder 项”精准筛出目标文件
这是最直接的过滤方式,支持按名称、类型、修改日期、大小等条件筛选。注意:它只对已传入的操作对象生效,所以前面必须有明确的输入源(如“获取指定的 Finder 项”或“访达中所选项目”)。
- 添加“获取指定的 Finder 项”,点击“+”选择文件夹(如“下载”),勾选“重复子文件夹中的项目”若需递归扫描
- 接着添加“过滤 Finder 项”,点“+”添加条件:例如“名称包含‘report’”、“种类是‘PDF 文稿’”、“修改日期在过去 7 天内”
- 可叠加多个条件,逻辑默认为“且”;如需“或”关系,需拆分成多个分支流程(用“如果…那么…”操作)
用“运行 Shell 脚本”实现高级过滤逻辑
当内置过滤不够灵活(比如按文件名正则匹配、按内容关键词、按权限位),可嵌入 shell 命令。Automator 支持将上一步的文件路径传给脚本,再输出符合条件的路径列表。
- 在流程中插入“运行 Shell 脚本”,设置“Shell”为 /bin/zsh,“传递输入”选“作为参数”
- 示例脚本(筛选名称含数字且大于10MB的文件):
for f in "$@"; do
[[ -f "$f" ]] && [[ "$(stat -f "%z" "$f" 2>/dev/null)" -gt 10485760 ]] && [[ "$(basename "$f")" =~ [0-9] ]] && echo "$f"
done - 脚本输出的每行路径会自动成为下一步的输入,可接“移动 Finder 项”或“压缩 Finder 项”等操作
保存为快速操作或应用,一键触发
完成流程后,不要只存为“工作流”——那样每次都要打开 Automator 运行。更实用的是导出为:
- 快速操作:在“文件 > 导出”中选择“快速操作”,系统自动加入右键菜单(服务菜单)。在访达中选中文件夹或文件,右键 > “快速操作”即可运行
- 应用程序:导出为 App,双击运行(适合固定路径的批量任务,如“清理桌面临时文件”)
- 若需定时执行,可将工作流保存为 .workflow 文件,再用 macOS 的“日历”或“launchd”触发(需额外配置)
常见陷阱与优化提示
实际使用中容易卡在几个细节上:
- “过滤 Finder 项”对符号链接默认不跟随,需先加“解析别名”操作;对隐藏文件,默认不显示,需在 Finder 中开启“显示隐藏文件”或改用 shell 脚本配合
ls -a - 路径含空格或特殊字符时,shell 脚本务必用引号包裹变量(
"$f"),否则会中断 - 测试阶段建议先接“显示通知”或“记录到文稿”,确认筛选结果是否符合预期,再连删除/移动等不可逆操作

















