У Филиппа правильная идея, но она делает вещи немного сложнее, чем они должны быть. :) Следующее помогает мне:
on run (args)
set thePath to first item of args
tell application "iPhoto"
remove (every photo where image path is equal to thePath or original path is equal to thePath)
end tell
end run
Это захватывает первый аргумент командной строки и использует его как путь к файлу, который вы хотите удалить. Поскольку фотография в iPhoto может иметь как измененную, так и оригинальную копию каждой фотографии, сценарий проверяет как исходный путь фотографии, так и ее текущий путь к изображению при поиске фотографии, которую нужно удалить.
Обратите внимание, что свойство «оригинальный путь» существует только в iPhoto 8.x, поэтому, если у вас более ранняя версия iPhoto, вам нужно будет извлечь эту часть и указать правильный путь к фотографии ( один в папке Modified, если он есть, в противном случае путь в папке Originals).
Кроме того, команда «удалить» работает, а команда «удалить» - нет, потому что iPhoto отстой - «удаление» действительно должно работать!