You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OSX下Automator调用rsync服务:进度显示、完成提示及桌面路径问题

解决你的Automator + rsync需求与疑问

嘿,我来帮你搞定这几个问题!下面分点给你讲清楚每个需求的实现方法和疑问的解答:

一、如何引用当前用户的桌面路径

在Shell命令里,~符号会自动解析为当前登录用户的主目录,所以直接用~/Desktop就能精准指向当前用户的桌面啦!比如你要把文件同步到桌面的「备份文件夹」,就写~/Desktop/备份文件夹;如果直接放到桌面根目录,写~/Desktop就行。

二、打开终端显示rsync进度 + 完成提示

要让Automator调用终端并实时显示进度,还要加完成提示,你需要调整「运行Shell脚本」的内容,让它主动触发终端窗口执行命令。具体步骤和脚本如下:

  1. 打开Automator,新建一个服务,设置服务接收文件或文件夹在Finder中;
  2. 添加「运行Shell脚本」动作,将“传递输入”设置为作为参数;
  3. 替换默认脚本为以下内容:
for item in "$@"
do
    # 构造终端要执行的命令串,包含进度显示、完成提示和窗口停留逻辑
    terminal_cmd="rsync -avz --progress \"$item\" ~/Desktop/; echo -e '\n✅ 复制任务已完成!'; read -n 1 -s -r -p '按任意键关闭终端窗口...'"
    # 打开终端并执行命令
    open -a Terminal --args -e "$terminal_cmd"
done

脚本细节说明:

  • rsync -avz --progress:-a是归档模式(保留文件权限、时间戳等元数据),-v显示同步细节,-z压缩传输节省带宽,--progress就是你要的实时进度条;
  • echo -e '\n✅ 复制任务已完成!':同步结束后在终端输出带换行和 emoji 的提示,更直观醒目;
  • read -n 1 -s -r -p '...':让终端窗口停留,等待用户按任意键再关闭,避免刚看到完成提示窗口就消失;
  • open -a Terminal --args -e "$terminal_cmd":调用系统终端App,执行我们预先构造好的命令串。

三、测试验证

保存你的Automator服务后,在Finder里选中文件/文件夹,右键→服务→你给服务起的名字,终端就会自动弹出,实时显示rsync的同步进度,完成后会提示你按任意键关闭窗口。

内容的提问来源于stack exchange,提问作者local1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:55:30