답변:
가장 쉬운 기본 제공 방법은 Finder 에서 터미널 창으로 항목을 드래그하는 것 입니다. 삭제하면 터미널 은 (이스케이프 된) 경로 이름을 "입력"합니다. 그런 다음 쉘의 명령 행 편집을 사용하여 나머지 명령을 입력 할 수 있습니다. 또는 미리 생각하고 있다면 먼저 명령을 입력 한 다음 항목을 드래그하십시오.
"먼저 드래그"버전 :
“앞으로 생각”버전 :
보다 자동화 된 솔루션이 필요한 경우 (다른 답변에서 알 수 있듯이) AppleScript 또는 Automator로 전환 할 수 있습니다. 여분의 "이동 부품"은 솔루션에 약간의 복잡성을 추가 할 수 있으므로 자동화 된 솔루션 중 하나 이상을 구현하는 복잡성과 비교하여 위의 프로세스의 이점 (수동이지만 유연함)을 평가해야합니다.
자동화 가능성 중 일부는 다음과 같습니다.
.command
파일 (일반적으로 쉘 스크립트; Finder 에서 열어 터미널 에서 실행 )
나는 이것을 직접 할 수있는 방법이 없다고 생각합니다. 원하는 작업을 수행하는 "자동화 기"응용 프로그램을 구축 할 수 있습니다. 다음은 Automator 스택의 모습을 보여줍니다.
결과를 응용 프로그램으로 저장 한 다음 파인더에서 파일을 선택하고 마우스 오른쪽 단추를 클릭하고 "연결 프로그램"을 선택한 다음 응용 프로그램을 선택하십시오. (응용 프로그램 목록 맨 아래에서 "기타 ..."를 선택해야 할 수도 있습니다.)
이 방법으로 스크립트와 상호 작용할 수는 없지만 파일을 반복하여 일부 쉘 스크립트를 수행 할 수 있습니다.
서비스 는 osx 가 이런 종류의 일을 처리하는 방식입니다.
응용 프로그램 메뉴 (이 경우 'Finder')에는 항상 Services
현재 응용 프로그램 및 현재 상태에 적용되는 서비스를 제공 하는 메뉴 옵션이 있습니다 . 일반적으로 상태는 선택된 개체 유형 (텍스트, 파일 / 폴더 등)입니다.
시스템 환경 설정 패널에서 마지막 세 가지에만 해당되는 바로 가기 키를 활성화, 비활성화 및 할당 할 수 있습니다 Keyboard
.
Finder의 파일 / 폴더에 쉘 스크립트를 적용하는 서비스를 작성하려면 다음을 수행하십시오.
자동화기를 시작 하고 새로운 Service
유형의 문서를 만듭니다.
files or folders
)Get Selected Finder Items
조치가 있습니다.Run Shell Script
다음과 같이 보일 것입니다 :
~/Library/Services
저장할 때 automator 는 자동으로 폴더에 저장하여 Application -> Services
메뉴 또는 상황에 맞는 (오른쪽 클릭) 메뉴 를 통해 즉시 (거의) 사용할 수있게 합니다.
위의 답변을 바탕 으로이 물건을 만들었습니다.
https://github.com/commonpike/DropShell
기본적으로 삭제 된 파일을 인수로 사용하여 앱에있는 쉘 파일을 호출하는 애플 스크립트 앱입니다. 필요에 따라 쉘 스크립트를 수정할 수 있습니다.
commonpike의 답변을 바탕으로 AppleScript를 만들었습니다 .AppleScript는 삭제 된 모든 파일을 일치하는 이름의 쉘 스크립트로 리디렉션합니다. Apple의 ScriptEditor에서 응용 프로그램으로 저장하고 script.app로 이름을 바꾸면 script.sh와 일치합니다 .sh https://github.com/PHolker/scripts/blob/master/DropScript.scpt
위의 솔루션과 달리 쉘 스크립트에 대해 인용 된 매개 변수를 생성하고 싶었습니다. 다른 방법은 괜찮지 만 실제로 원하는 것이 "단지 command-v를 터미널에 제안"하는 것과 같습니다 pbpaste
.
각 Finder 선택에 대한 파일 매개 변수로 확장 된 스크립트에서 사용할 수있는 쉘 기능을 만들고 싶었습니다. 나는 생선 껍질을 사용하며 이것은 다소 작동하는 것 같습니다.
function selection
osascript -e "tell application \"Finder\" to set s to the selection as alias list" -e "repeat with f in s" -e "set contents of f to POSIX path of f" -e "end repeat" -e "set AppleScript's text item delimiters to linefeed" -e "s as string"
end
와 같은 (물고기 껍질에서 다시 사용) convert-video (selection)
.
bash 함수에서는 | tr '\n' '\0' | xargs -0 printf "%q" {}
확실하지 않은 osascript 명령의 끝 과 같이 출력을 인용해야 할 수도 있습니다 .
(참고 : 지난 2 시간 동안 다시 배우고 내일은 잊어 버릴 고급 애플 스크립트 및 쉘 스크립팅에 대해 알고있는 모든 것)