我如何修改 Automator Service ditto 命令?

我如何修改 Automator Service ditto 命令?

使用 Automator 服务和一个可直接使用且存在于此主题而只是围绕 ditto 的“GUI”。解决方案效果很好,但是,我没有得到我期望的行为。Ditto 未经修改,将文件夹复制到目标文件夹,如果文件夹不存在,则创建该文件夹。我使用该服务得到的行为是将内容复制到目标。有人可以帮我修改 applescript 以将文件夹复制到目标而不是将内容复制到目标吗?脚本如下:

on run {input, parameters}
    set dest to choose folder with prompt "select destination:"
    set dest_path to (POSIX path of dest) as text
    set src_paths to ""
    repeat with idx from 1 to count (input)
        set src_paths to src_paths & (quoted form of (POSIX path of item idx of input as text)) & " "
    end repeat
    set cmd to "ditto " & src_paths & quoted form of dest_path
    do shell script cmd
end run

答案1

尝试使用cp -Rf。Ditto 似乎不支持您要执行的操作。另外,请确保源路径不以“/”结尾。如果路径以“/”结尾,cp 将像 ditto 一样复制目录的内容。

答案2

ditto我不知道如何使用 AppleScript 来实现这一点,但假设你希望通过创建 bar将目录 foo 复制到 bar,那么

    ditto foo bar/foo

您还可以创建中间目录。例如,您希望复制层次结构 bar/foo/baz 中的目录 biz。目录 bar 和 foo 已经创建

    ditto biz bar/foo/baz/biz

相关内容