Самый простой встроенный способ сделать это - просто перетащить элементы из Finder в окно терминала . Когда вы их отбрасываете, Терминал «печатает» их (экранированные) пути. Затем вы можете использовать редактирование командной строки вашей оболочки для ввода остальной части команды. Или, если вы думаете о будущем, вы можете сначала ввести команду, а затем перетащить элементы.
Версия «перетащить первым»:
- Выберите и перетащите некоторые элементы Finder в окно терминала , в котором отображается приглашение оболочки. Терминал вставит (экранированные) пути.
- Тип Control+ A(перейти к началу строки; ⌃A по умолчанию, но зависит от оболочки / конфигурации).
- Введите вашу команду и пробел (он будет вставлен перед путями).
Версия «думая впереди»:
- В любом порядке выполните оба действия:
- В окне терминала введите начальную часть вашей команды и пробел (все, кроме имен путей).
- Выберите некоторые элементы в Finder .
- Перетащите выбранные элементы из Finder в окно терминала, где вы ввели команду.
- Активируйте окно терминала и нажмите Return.
Вы можете (как указали другие ответы) обратиться к AppleScript или Automator, если вам нужно более автоматизированное решение. Поскольку дополнительные «движущиеся части» могут усложнить решение, вам придется сопоставить преимущества вышеуказанного процесса (ручного, но гибкого) со сложностью реализации одного или нескольких автоматизированных решений.
Некоторые из возможностей автоматизации включают в себя:
- приложение капли AppleScript
- простая программа AppleScript, запускаемая встроенным меню сценария или другим средством запуска
- получить пути из выбора Finder
- рабочий процесс Automator, приложение или плагин Finder
- исполняемый
.command
файл (обычно сценарий оболочки; открыть в Finder для запуска его в терминале )
- получить пути из выбора Finder (через osascript )
- какой-то сторонний инструмент, который уже обеспечивает необходимую вам функциональность
Сервисы - это то, как osx обрабатывает подобные вещи.
В меню приложения (в данном случае «Искатель») всегда есть (почти) пункт
Services
меню, который будет предоставлять услуги, применимые к текущему приложению и его текущему состоянию. Обычно указывается тип объекта (текст, файлы / папки и т. Д.).Их можно включать, отключать и назначать сочетания клавиш на панели «Системные настройки», которые имеют смысл только для последних трех
Keyboard
.Чтобы создать Сервис, который применяет сценарий оболочки к файлам / папкам в Finder:
Запустите automator и создайте новый
Service
тип документа.files or folders
)Get Selected Finder Items
действие.Run Shell Script
Это должно выглядеть примерно так:
~/Library/Services
При сохранении automator автоматически поместит его в вашу папку, что сделает его (почти) доступным сразу черезApplication -> Services
меню или контекстное меню (щелчок правой кнопкой мыши).источник
В Mac OS X предпочтительным языком сценариев является Applescript. Вы можете создать каплю (скрипт, который будет делать что-то, когда вы перетаскиваете некоторые файлы на его значок), размещать значок скрипта (который можно сохранить как приложение) на рабочем столе и перетаскивать файлы, которые вы хотите передать на скрипт.
В качестве альтернативы вы можете использовать действия с папками. Можно связать сценарий Applescript с папкой, которая будет выполняться каждый раз, когда некоторые файлы (или каталоги) будут отброшены над папкой.
источник
Я тоже хотел это сделать, однако, в отличие от описанных выше решений, я хотел создать параметры в кавычках для сценария оболочки. Эти другие методы хороши, но они вроде как предлагают «просто команда-v в терминал», когда вы действительно хотите
pbpaste
.Я хотел создать функцию оболочки, которую я мог бы использовать в своих сценариях, которая расширилась до параметров файла для каждого выбора Finder. Я использую рыбные раковины, и это, кажется, работает несколько:
Используется (опять же в раковине рыбы) вроде
convert-video (selection)
.В функции bash может потребоваться
| tr '\n' '\0' | xargs -0 printf "%q" {}
заключить в кавычки что-то вроде конца этой команды osascript, не уверен.(примечание: все, что я знаю о продвинутых сценариях appleScript и shell-скриптах, я переучил за последние 2 часа и забуду к завтрашнему дню)
источник
Основываясь на ответах выше, я построил эту штуку
https://github.com/commonpike/DropShell
В основном это приложение appleScript, которое вызывает шелл-файл, расположенный в приложении, с удаленными файлами в качестве аргументов. Вы можете изменить скрипт оболочки по мере необходимости.
источник
Основываясь на ответе commonpike, я создал AppleScript, который перенаправляет все файлы, сброшенные на него, в сценарий оболочки с соответствующим именем. Просто сохраните как приложение из Apple ScriptEditor и переименуйте в script.app, чтобы он соответствовал вашему script.sh https://github.com/PHolker/scripts/blob/master/DropScript.scpt
источник