open -a를 사용하여 터미널에서 코코아 이맥스를 열 수 없습니다

open -a를 사용하여 터미널에서 코코아 이맥스를 열 수 없습니다

이 사이트에서 Mac OS X 10.6.5를 실행하는 MacBook Air에 emacs를 설치했습니다.http://emacsformacosx.com/. 나는 이것이 코코아 이맥스(cocoa emacs)라고 불렸던 것이라고 믿습니다. 내 응용 프로그램 폴더로 끌어서 거기에서 실행하면 제대로 작동합니다. 터미널에서 실행할 수 있기를 원합니다. 인터넷 검색 후 시도해 보았습니다 open -a /Application/Emacs.app foo.txt(foo.txt는 기존 파일임). 두 개의 emacs 창이 있습니다. 하나는 환영 화면이 있고 다른 하나는 foo.txt가 로드되어 있습니다. /Applications 디렉토리에서 몇 가지 응용 프로그램을 시도했지만 이와 같이 작동하지 않는 것 같습니다. 내 계정(관리자 계정)을 사용하여 설치했기 때문에 설치한 후 ls -l소유자 /Application와 그룹이 이 폴더의 다른 항목과 다르다는 것을 알았습니다. 다른 사람들처럼 소유자와 그룹을 루트와 휠로 재귀적으로 변경했지만 도움이 되지 않았습니다. 지금 재미있어 보이는 유일한 점은 ls -l이 확장 속성과 관련된 @ 문자를 표시하지만 이를 확인하는 방법을 모른다는 것입니다.

다음에 확인해야 할 사항에 대한 제안이 있으십니까?

open 명령만 사용하여 프로그램을 실행합니까? 쉘 스크립트를 사용하여 수행하는 작업을 시뮬레이션할 수 있습니까?

답변1

작동 방식을 오해하셨습니다 open. 명령을 사용하여 Emacs와 txt 파일이라는 두 개의 파일을 열라고 open /Application/Emacs.app foo.txt지시했지만 open이는 두 가지 다른 작업입니다. 먼저 emacs가 시작된 다음 파일 foo.txt에 대한 기본 프로그램으로 로드됩니다. .txt귀하의 경우에는 분명히 Emacs입니다.

Emacs가 이 파일 형식에 대한 기본값인 한, 단지 를 사용하면 open foo.txtEmacs에서 파일이 열릴 것입니다. 그러나 기본값이 아닌 경우에는 Emacs를 사용해야 합니다 open foo.txt -a /Applications/Emacs.app( -a스위치는 사용할 응용 프로그램을 열도록 알려줍니다). 아니면 직접 전달할 수도 있습니다. --args다음과 같은 옵션을 사용하여 매개변수로 넘깁니다 open /Applications/Emacs.app --args foo.txt.

답변2

이것은 실제로 약간 이상합니다. 내 설치(homebrew로 수행)의 경우 open -a Emacs file.txt가 잘 작동합니다. 어쩌면 LaunchServices 데이터베이스를 다시 구축해야 할까요? 하지만 어쨌든 다음을 사용하여 실행 파일을 직접 호출할 수 있어야 합니다.

/Applications/Emacs.app/Contents/MacOS/Emacs file.txt

관련 정보