Как изменить команду Automator Service ditto?

Как изменить команду Automator Service ditto?

Используя Automator Service и 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 с dittoсозданием bar, тогда

    ditto foo bar/foo

Вы также можете создать промежуточные каталоги. Например, вы хотите скопировать каталог biz в иерархию bar/foo/baz. Каталоги bar и foo уже были созданы тогда

    ditto biz bar/foo/baz/biz

Связанный контент