用于创建 Dropbox 符号链接的 Automator bash 脚本服务

用于创建 Dropbox 符号链接的 Automator bash 脚本服务

我正在尝试创建一个 Automator 服务(在右键单击菜单中),该服务创建文件夹/文件的符号链接并将其移动到 Dropbox 文件夹。这就是我现在所拥有的:

while [ $# -ne 0 ]; do
    ln -s "$1" "$1 symlink"
    mv "$1 symlink" ~/Dropbox/.
    shift
done

然而我想要做的是创建一个具有相同名称($1)的文件夹。尝试mv "$1 symlink" ~/Dropbox/"$1"是行不通的。我似乎不知道如何重命名该文件夹。我尝试了这个,由于某种原因,它将符号链接文件夹移动到符号链接的文件夹内($1)。

while [ $# -ne 0 ]; do
    loc = "~/Dropbox"
    ln -s "$1" "$1 symlink"
    mv "$1 symlink" "$loc/$1"
    shift
done

答案1

这是您当前的代码

while [ $# -ne 0 ]; do
  ln -s "$1" "$1 symlink"     # you create a symlink named "xxx symlink"
  mv "$1 symlink" ~/Dropbox/. # you are moving the symlink into Dropbox folder
  shift
done

您想要符号链接到 Dropbox 中已有的文件/目录,因此必须这样做:

while [ $# -ne 0 ]; do
  # you want it to fail if there is a file in dropbox with the same name
  test -e "~/Dropbox/$1" && exit 1

  # order of two lines below is unimportant
  mv "$1" ~/Dropbox/                # move file into dropbox
  ln -s "~/Dropbox/$1" "$1 symlink" # you create a symlink named "xxx symlink"

  shift
done

至于你问题的第二部分:

然而我想要做的是创建一个具有相同名称($1)的文件夹。尝试 mv "$1 symlink" ~/Dropbox/"$1" 不起作用。我似乎不知道如何重命名该文件夹。我尝试了这个,由于某种原因,它将符号链接文件夹移动到符号链接的文件夹内($1)。

while [ $# -ne 0 ]; do
  loc = "~/Dropbox"
  ln -s "$1" "$1 symlink"
  mv "$1 symlink" "$loc/$1"
  shift
done

创建目录的实用程序称为mkdir。虽然我无法弄清楚您要重命名哪个文件夹,但您可以使用mv命令来完成此操作。例如,mv ~/file ~/Dropbox/backup.thing将文件重命名file为,backup.thing同时还在位置之间移动它。

相关内容