我将以下 shell 脚本 (/bin/bash) 保存为服务。
for f in "$@"
do ln -s "$@" "$@_deleteLinkExtAfterMoving.link"
done
该服务接收文件或文件夹作为输入,并作为参数传递。它为选定的文件/文件夹创建符号链接。但是,如果我选择多个文件,脚本就会失败。如何在选择多个文件/文件夹的情况下使其工作,以便我可以一次创建多个符号链接,无论是在本地驱动器分区之一上,还是在已安装的 USB 存储驱动器上?
在 macOS 10.12.6 Sierra 上,Automator 版本 2.7。
答案1
正如所写,您的代码ln -s
每次都会使用整个参数列表调用您拥有的参数的次数。也许您的意思是:
for f in "$@"
do ln -s "$f" "${f}_deleteLinkExtAfterMoving.link"
done
如果您想在同一个ln -s
调用中建立多个链接,那么目标应该是一个目录。
ln -s /path1/to/file1 /path2/to/file2 /path/to/target/directory
在这种情况下,链接将使用源的基本名称(即/path/to/target/directory/file1
和/path/to/target/directory/file2
)创建。对于你的情况,如下所示:
ln -s "$@" "/path/to/directory/with/links/to/files/to/delete"