Wie ändere ich den Automationsdienst-Befehl "ditto"?

407
Craig Lindsey

Using und Automator Service und ein AppleScript, das rot verfügbar ist und in diesem Thread vorhanden ist, jedoch eine "GUI" um dito. Die Lösung funktioniert gut, aber ich bekomme nicht das erwartete Verhalten. Dito kopiert ohne Änderung einen Ordner in einen Zielordner und erstellt den Ordner, falls er nicht vorhanden ist. Das Verhalten, das ich mit dem Dienst erhalte, ist, dass der Inhalt in das Ziel kopiert wird. Kann mir jemand helfen, das Apfelskript so zu ändern, dass der Ordner in das Ziel kopiert wird, nicht der Inhalt in das Ziel? Skript folgt:

on run  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
Hat jemand Ideen? Craig Lindsey vor 8 Jahren 0

2 Antworten auf die Frage

0
William T Froggard

Versuchen Sie es cp -Rfstattdessen. Dito 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 "/" endet.

0
fd0

Ich habe keine Ahnung, wie das mit AppleScript funktioniert, aber vorausgesetzt, Sie möchten das Verzeichnis foo in bar mit dittoErstellungsleiste kopieren

 ditto foo bar/foo 

Sie können auch Zwischenverzeichnisse erstellen. Als Beispiel möchten Sie das Verzeichnis in der Hierarchieleiste / foo / baz kopieren. Die Verzeichnisse bar und foo wurden dann schon angelegt

 ditto biz bar/foo/baz/biz