如何使用AppleScript从剪贴板复制文件?

时间:2013-12-15 14:11:43

标签: macos shell copy applescript symlink

我有这个shell脚本,它将符号链接(符号链接)解析为文件夹并将其复制到当前工作目录:

cp -R `grealpath /some/dir/symlink_to_folder` .

在Mac OS X上安装 coreutils 时,命令grealpath只解析符号链接。

我的问题是:与AppleScript相同的是什么?工作流程理想情况如下:将Finder中的一个或多个符号链接文件夹复制到剪贴板,然后右键单击Finder中的另一个文件夹 - > 服务 - > 运行新创建的脚本,将所有符号链接从剪贴板复制到另一个文件夹。

2 个答案:

答案 0 :(得分:1)

您可以创建这样的服务:

cp -R "$(/usr/local/bin/grealpath "$(osascript -e 'POSIX path of «class furl» of (the clipboard as record)')")" "$1"

如果剪贴板包含对文件的引用,«class furl» of (the clipboard as record)将返回第一个文件的文件对象。

您也可以使用cp -RH source target代替cp -R `grealpath source` target。如果符号链接及其目标具有不同的名称,则它使用符号链接的名称。

 -H    If the -R option is specified, symbolic links on the command line
       are followed.  (Symbolic links encountered in the tree traversal
       are not followed.)

答案 1 :(得分:1)

Applescript会将符号链接视为另一个文件夹,因此您只需复制内容即可。

Tell application "Finder"
    repeat with i from 1 to (count symlinks)
    set newFolder to make new folder at destFolder with properties {name:item i of symlinks)
    duplicate entire contents of item i of symlinks to newFolder
end