Automator Service ditto コマンドを変更するにはどうすればよいですか?

Automator Service ditto コマンドを変更するにはどうすればよいですか?

AutomatorサービスとAppleScriptを使用して、このスレッドの、ただの「GUI」を ditto の周りに。このソリューションはうまく機能しますが、期待した動作が得られません。Ditto は、変更なしでは、フォルダーを dest フォルダーにコピーし、フォルダーが存在しない場合は作成します。このサービスで得られる動作は、コンテンツが宛先にコピーされるというものです。コンテンツを宛先にコピーするのではなく、フォルダーを宛先にコピーするように 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

AppleScriptでこれをどうやって動作させるかは分かりませんが、ディレクトリfooをbarにコピーしてdittobarを作成すると仮定すると、

    ditto foo bar/foo

中間ディレクトリを作成することもできます。例として、階層bar/foo/bazのbizディレクトリをコピーするとします。ディレクトリbarとfooはすでに作成されています。

    ditto biz bar/foo/baz/biz

関連情報