![我如何修改 Automator Service ditto 命令?](https://linux22.com/image/1452704/%E6%88%91%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%20Automator%20Service%20ditto%20%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
使用 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