Wie ändere ich den Ditto-Befehl des Automator-Dienstes?

Wie ändere ich den Ditto-Befehl des Automator-Dienstes?

Mit einem Automator Service und einem AppleScript, das bereits verfügbar ist und aufdieser Threadvon aber einer „GUI“ um dito. Die Lösung funktioniert gut, ich erhalte jedoch nicht das erwartete Verhalten. Dito kopiert ohne Änderung einen Ordner in einen Zielordner und erstellt den Ordner, wenn er nicht existiert. Das Verhalten, das ich mit dem Dienst erhalte, ist, dass der Inhalt in das Ziel kopiert wird. Kann mir jemand helfen, das Applescript so zu ändern, dass der Ordner in das Ziel kopiert wird und nicht der Inhalt in das Ziel? Das Skript lautet wie folgt:

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

Antwort1

Versuchen Sie es cp -Rfstattdessen mit . Ditto scheint das, was Sie versuchen, nicht zu unterstützen. Stellen Sie außerdem sicher, dass der Quellpfad nicht mit einem "/" endet. cp kopiert den Inhalt des Verzeichnisses wie ditto, wenn der Pfad mit einem "/" endet.

Antwort2

Ich habe keine Ahnung, wie ich das mit AppleScript zum Laufen bringen kann, aber vorausgesetzt, Sie möchten das Verzeichnis foo nach bar kopieren und dittodann bar erstellen

    ditto foo bar/foo

Sie können auch Zwischenverzeichnisse erstellen. Als Beispiel möchten Sie das Verzeichnis biz in die Hierarchie bar/foo/baz kopieren. Die Verzeichnisse bar und foo wurden dann bereits erstellt

    ditto biz bar/foo/baz/biz

verwandte Informationen