Скрипт Automator для перемещения файлов в подпапки с использованием относительных путей

Я новичок в программировании и использую Mac OSX Lion. В настоящее время я пытаюсь создать сценарий оболочки для запуска как часть «Действия папки» в Automator. Его работа будет состоять в том, чтобы взять файлы, которые были помещены в эту папку, и переместить их в подпапку.

MYDIR="${HOME}/Desktop/Documents/Images" 
mkdir "${MYDIR}" 
mv "$@" "${MYDIR}"

Сценарий, который я использую, работает хорошо, но я хочу, чтобы он работал без указания абсолютного пути ("${HOME}/Desktop/Documents/Images") в коде, а вместо этого указывал относительный путь к текущей папке. Это позволит мне использовать те же функции «Действие с папкой» в других папках.

Любая помощь будет принята с благодарностью. Спасибо


person Oliver Wilshen    schedule 28.06.2013    source источник


Ответы (2)


MYDIR="./Documents/Images"
mkdir "${MYDIR}" 
mv "$@" "${MYDIR}"

Одна точка. означает текущий каталог.

Я считаю, что в вашем вызове mkdir вы хотели бы сделать это только в том случае, если каталог еще не существует.

-- Кайделл http://learnbymac.com

person Kaydell    schedule 28.06.2013
comment
Привет, спасибо за быстрый ответ... Пытался использовать этот код, но новая папка все еще создается ниже в каталоге (в USER›JOHNDOE›NEW FOLDER). Вместо того, чтобы в подкаталог папки, в которую я помещаю файлы (которая находится на рабочем столе). Как я уже упоминал, я стремлюсь к перемещению файлов в подкаталог без указания пути, если это возможно. Очень признателен. - person Oliver Wilshen; 28.06.2013
comment
Попробуйте это: MYDIR=Documents/Images Это относительный путь. - person Kaydell; 30.06.2013

Добавьте этот AppleScript в «~/Library/Scripts/Folder Action Scripts». Если папки «Сценарии действий с папкой» не существует, создайте ее.

on adding folder items to theFolder after receiving theFiles
    -- Create Subfolders
    do shell script "mkdir -p " & (quoted form of (POSIX path of theFolder)) & "{\"Subfolder 1\",\"Subfolder 2\"}"

    -- Examples of how to move files
    tell application "Finder"
        duplicate theFiles to folder ((theFolder as text) & "Subfolder 1")
        move theFiles to folder ((theFolder as text) & "Subfolder 2")
    end tell
end adding folder items to
person adayzdone    schedule 29.06.2013