OS X : 더블 클릭으로 파일을 열기위한 응용 프로그램으로 프로그램의 사용자 지정 명령 줄 호출 지정


4

필자는 최근에 MacBook Air를 구입 한 Linux 사용자이며 현재 Linux 데스크탑 정의 파일과 동등한 지 여부를 찾으려고 필사적으로 노력하고 있습니다. 해당 응용 프로그램과 관련된 파일 형식의 파일을 두 번 클릭하면 X11이 해당 파일을 전달합니다.

예를 들어 Linux에서는 다음 .txt과 같은 특정 명령 줄 호출로 파일을 열도록 설정할 수 있습니다 emacsclient.

emacsclient -c -a "" %f

여기서 %f두 번 클릭 한 실제 파일의 경로로 대체 될 자리 표시자가 있습니다. 일반적으로 Linux 파일 관리자를 사용하면 파일 정보 창에서이 명령 줄을 지정할 수 있습니다.

OS X에서 이것을 달성하는 간단한 방법이 있습니까? 나는 해결책을 찾기 위해 Google뿐만 아니라 AppleScript 와도 땜질을 시도했지만 아무 소용이 없습니다. 아마도 올바른 기술로 올바른 질문을 할 수 있도록 Apple 기술 관련 지식과 어휘를 작성해야 할 것입니다.


파일에 어떤 명령을 적용 하시겠습니까?
Nicolas Barbulesco

주어진 파일 또는 주어진 접미사를 가진 모든 파일 을 처리 하시겠습니까?
Nicolas Barbulesco

Finder에서 파일을 두 번 클릭하면 주어진 명령 줄이 두 번 클릭 된 파일을 인수로 실행하고 싶습니다. 예를 들어 foo.txt홈 폴더를 클릭하면 emacsclient -c -a "" ~/foo.txt실행 되고 싶습니다 . 그러나 트레이에서 실행중인 워크 플로를 나타내는 성가신 회전 기어 휠을 제외하고는 Automator 워크 플로 (스티븐 S의 답변에 대한 두 번째 의견 참조)를 사용하여 만족스러운 솔루션을 찾았습니다. 그래도 고마워!
dlukes

쉘 스크립트를 사용자 정의 URL 체계와 연결하려면 Lincastor
Sergei

답변:


1

AppleScript는 당신의 친구입니다.

에서  애플 스크립트 편집기 , 다음의 소스 코드와 함께, 새로운 스크립트를 만들 :

(* This script is destined to be saved as an application droplet. It will process the items dropped onto it. *)

-- This routine processes the dropped item(s)
on open theDroppedItems
  repeat with i from 1 to the count of theDroppedItems
    set aDroppedItem to item i of theDroppedItems
    processItem(aDroppedItem)
  end repeat
end open

-- This routine processes an item
on processItem(anItemToProcess)
  set pathUnix to POSIX path of anItemToProcess
  set pathUnixQuoted to quoted form of pathUnix
  -- Here you make your shell command !
  set commandToRun to "cat " & pathUnixQuoted
  do shell script commandToRun
end processItem

쉘 명령의 경우 commandToRun원하는대로를 조정하십시오 .

스크립트를 저장하십시오. 에서 저장  대화 상자 :

  • 스크립트 이름을 OpenItems로 지정하십시오  .
  • 스크립트를 원하는 곳에 두십시오. 예를 들어, 스크립트를 / Applications 에 배치 할 수 있습니다  .
  • 형식 : 응용 프로그램을 선택하십시오  .
  • 두 확인란의 선택을 해제하십시오.

소스 코드에서 구성을보십시오  on open theDroppedItems. 이러한 종류의 AppleScript를 물방울 이라고 합니다 . 저장 한 응용 프로그램 OpenItems 의 아이콘을보십시오  . 큰 화살표는 그것이 물방울이라는 것을 보여줍니다. 그것은 응용 프로그램이 떨어 뜨린 항목을 수락한다는 것을 의미합니다.

이제 원하는 파일을 응용 프로그램  OpenItems로 끌어서 놓습니다 . 파일과 함께 명령이 시작됩니다.

다음 단계는 파일과 드롭 릿을 연결하는 것입니다. 원하는 파일을 선택하고 Apple I (   I )를 눌러  정보를 얻습니다. 에서  오픈 응용 프로그램 선택  OpenItems을 . 그러면 파일이 물방울과 연결됩니다. 따라서 파일을 두 번 클릭하면 드롭 릿 OpenItems로 파일이 열리고 파일  의 쉘 명령이 실행됩니다. 동일한 유형의 모든 파일에 대해 이것을 원하면 모두 변경… 단추를 클릭  하십시오.

Mavericks에서이 솔루션을 테스트했습니다. 효과가있다.


1
AppleScript의 광범위한 연습 예제 덕분에 내 시야를 넓히는 데 도움이되었습니다 (이전에 물방울에 대해 몰랐습니다)! 이미 Automator 워크 플로를 사용하는 솔루션이 약간 다르지만 더 깨끗하고 간단 할 수 있으므로 조사해 보겠습니다.
dlukes

1

내 지식으로는 이중 스크립트에서 자동으로 스크립트를 실행할 수있는 방법이 없습니다. 내가 찾은 최고의 솔루션은 Automator입니다. 사전 설치되어 있습니다. 스크립트를 컨텍스트 메뉴에 배치하는 서비스를 작성하려고합니다 (파일을 마우스 오른쪽 단추로 클릭). 조치의 경우 "쉘 스크립트 실행"조치를 찾고자합니다. 여기에서 파일 경로 및 디렉토리 경로와 같은 Finder로부터 입력을받을 수 있습니다. 입력을에 전달 stdin하면 쉘 스크립트에서 사용할 변수는 $@입니다.

if [[ ! -d "$@" ]]
then
    emacsclient -c -a "" $@;
    exit
fi

그 스크립트가 완전히 올바른지 모르겠지만 올바른 길을 찾아야합니다.


1
고마워, 그것은 내가 얻은 것보다 훨씬 더 가깝습니다! 그래도 답변을 수락 된 것으로 표시하기 전에 잠시 기다렸다가 누군가 원래 설명 된대로 해결책을 찾도록하겠습니다. 난
공감

1
사실, 당신은 정말 가깝습니다! Automator와 Run Shell Script를 사용하여 솔루션을 통합했지만 이 게시물 에 대한 답변에서 설명한대로 "Pass input : As arguments"옵션을 사용하여 워크 플로를 응용 프로그램으로 저장 했습니다 . 승인 된 것으로 표시 할 수 있도록 솔루션에 추가 하시겠습니까? 그렇지 않으면 링크와 함께 내 답변을 게시합니다.
dlukes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.