automator可实现macos文件分发:一、快速操作支持右键单次多路复制;二、应用程序支持双击选源批量分发;三、文件夹操作实现自动监听触发;四、applescript/shell可添加通知与哈希校验。
用 automator 实现 macos 上的文件分发任务,核心是把“选中文件 → 复制/移动到多个目标位置 → 可选通知或校验”这一串动作图形化串联起来,无需写代码,也不依赖第三方工具。
一、右键即发:快速操作实现单次多路分发
适合临时将一份文件(或一组文件)同时复制到几个固定文件夹,比如同步到“项目备份”“客户交付”“内部归档”三个目录。
- 打开 Automator,新建“快速操作”文档
- 拖入“获取指定的 Finder 项目”,点击“添加”选一个占位文件夹(仅用于占位,实际运行时会忽略)
- 拖入“对每个项目重复”操作,在其内部依次放入:
- “复制 Finder 项目”,目标设为 /Users/用户名/Documents/项目备份
- “复制 Finder 项目”,目标设为 /Users/用户名/Desktop/客户交付
- “复制 Finder 项目”,目标设为 /Users/用户名/Library/Containers/com.apple.Notes/Data/Documents/内部归档(或其他路径)
- 点击“文件 → 存储”,格式选“快速操作”,名称如“分发至三位置”,勾选“在访达中”
- 之后在访达中选中任意文件,右键 → “快速操作” → 点击该名称,立刻完成三路复制
二、双击执行:打包成应用程序统一调度
适合运维人员日常使用固定分发逻辑,比如每次发布新版本时,自动把 build 文件夹下的 app、dmg、zip 同步到内网共享盘、测试服务器挂载点、本地历史存档目录。
PyCharm 2026.2.0.1 Mac版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合在macOS系统上进行 Python 项目开发、运行、调试和测试。
- 新建 Automator 文档,选择“应用程序”类型
- 拖入“请求访达项目”,勾选“允许选取文件夹”,这样运行时可手动选源目录
- 接“获取指定的 Finder 项目”,用于预设目标路径(也可全用 Shell 替代)
- 拖入“运行 Shell 脚本”,把以下内容粘贴进去(按需修改路径):
cp -R "$src"/MyApp.app "/Volumes/Shared/builds/latest/";
cp "$src"/MyApp-*.dmg "/Volumes/TestServer/dmg/";
cp "$src"/MyApp-*.zip "/Users/用户名/Documents/Archive/";
done
- 存储为“应用分发助手.app”,放在程序坞,双击启动后选择源文件夹即可批量分发
- 注意提前确认挂载点已连接,否则脚本会跳过失败项(可加 if [ -d "/Volumes/..." ]; then ... fi 增强健壮性)
三、自动响应:文件夹操作监听交付目录
适合搭建轻量级交付管道,例如开发提交到 ~/Dropbox/ToDeploy/ 后,Automator 自动将其内容分发到 Web 根目录、CDN 上传队列、日志记录文件。
- 新建 Automator 文档,选择“文件夹操作”,绑定到 ~/Dropbox/ToDeploy/
- 拖入“过滤 Finder 项目”,设置条件为“文件名”“不包含”“.tmp”或“~”,排除临时文件
- 拖入“如果”操作,用“文件扩展名”判断类型:
- 如果是 .html/.css/.js → 移动到 /Library/WebServer/Documents/
- 如果是 .png/.jpg → 复制到 /Volumes/CDN_Upload/images/
- 其余文件 → 记录到 ~/Documents/deploy_log.txt(用“追加文本到文件”操作)
- 保存后,只要往 ToDeploy 文件夹丢文件,整个分发流程就静默触发,无需人工干预
四、增强可靠性:加通知与简单校验
运维场景下,分发是否成功需要反馈。可在任意工作流末尾加入轻量验证和提示。
- 在最后添加“运行 AppleScript”,输入:
set countIn to (count of input)
set countOut to (count of (do shell script "ls -1 /Volumes/Shared/builds/latest/MyApp.app 2>/dev/null | wc -l"))
if countOut is "1" then
display notification "✅ 分发完成:" & (countIn as string) & " 个项目" with title "部署助手"
else
display notification "❌ 分发异常:MyApp.app 未就位" with title "部署助手"
end if
end run
- 该脚本检查关键目标是否存在,并弹出系统通知;也可替换为“发送邮件”或“写入系统日志”操作
- 如需更高精度校验,可用“运行 Shell 脚本”调用 shasum 对比源与目标文件哈希值










