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

319
Craig Lindsey

Использование и Automator Service, а также AppleScript, который доступен для всех и существует в этом потоке, но с «GUI» вокруг. Решение работает хорошо, однако я не получаю ожидаемого поведения. То же самое, без изменений, копирует папку в папку dest и создает папку, если она не существует. Поведение, которое я получаю со службой, заключается в том, что содержимое копируется в место назначения. Может ли кто-нибудь помочь мне изменить код appleScript, чтобы папка копировалась в место назначения, а не содержимое в место назначения? Сценарий следует:

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
У кого-нибудь есть идеи? Craig Lindsey 8 лет назад 0

2 ответа на вопрос

0
William T Froggard

Try using cp -Rf instead. Ditto doesn't seem to support what you're trying to do. Also, make sure the source path doesn't end with a "/". cp will copy the directory's contents like ditto if the path ends in a "/".

0
fd0

I have no idea how to make this work with AppleScript but assuming you wish to copy the directory foo to bar with ditto creating bar then

 ditto foo bar/foo 

You can create intermediate directories also. As an example you wish to copy the directory biz in the hierarchy bar/foo/baz. The directories bar and foo have already been created then

 ditto biz bar/foo/baz/biz