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

MacOS下使用Bash编写Automator自动化脚本的问题求助

解决Mac Automator创建符号链接并添加到Finder侧边栏的问题

一、Automator应用配置步骤

  • 打开Automator,新建「应用」类型文档
  • 添加「运行Shell脚本」动作,设置「传递输入」为「作为参数」
  • 将下方修正后的脚本粘贴到动作框内

二、修正后的Shell脚本

#!/bin/bash

# 目标符号链接存储目录,可根据实际路径修改
TARGET_DIR="/Users/Default/Documents/GoogleSync"

# 确保目标目录存在,不存在则自动创建
mkdir -p "$TARGET_DIR"

for f in "$@"
do
    # 检查符号链接是否已存在,避免重复创建报错
    LINK_PATH="$TARGET_DIR/$(basename "$f")"
    if [ ! -L "$LINK_PATH" ]; then
        ln -s "$f" "$LINK_PATH"
        echo "已创建符号链接: $LINK_PATH"
    else
        echo "符号链接已存在: $LINK_PATH"
    fi

    # 获取文件/文件夹名称
    ITEM_NAME=$(basename -- "$f")
    # 转义路径空格,生成标准file://格式URL
    ESCAPED_PATH=$(printf "file://%s" "$(echo "$f" | sed 's/ /%20/g')")
    
    # 检查侧边栏是否已存在该项目,避免重复添加
    if ! /usr/local/bin/mysides list | grep -q "$ITEM_NAME"; then
        /usr/local/bin/mysides add "$ITEM_NAME" "$ESCAPED_PATH"
        echo "已添加到Finder侧边栏: $ITEM_NAME"
    else
        echo "项目已存在于Finder侧边栏: $ITEM_NAME"
    fi
done

三、关键优化说明

  • 目录兜底处理:用mkdir -p确保目标目录存在,避免因目录缺失导致创建链接失败
  • 重复操作防护:检查符号链接和侧边栏项是否已存在,防止重复执行引发错误
  • 路径转义优化:通过printf生成规范的file://格式路径,兼容带空格的文件/文件夹名
  • 状态反馈:添加echo输出操作结果,方便调试和验证执行情况

四、测试与权限排查

  1. 保存Automator应用,例如命名为「SyncLinkToSidebar.app」
  2. 拖拽文件或文件夹到应用图标上,验证符号链接是否生成、侧边栏是否新增项目
  3. 若遇权限问题:
    • 右键应用→「显示简介」,勾选「使用Rosetta打开」(针对Apple Silicon芯片)
    • 或在终端给脚本添加执行权限:chmod +x /path/to/your/script.sh

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:50:56