터미널에서 파일 연결을 변경 하시겠습니까?


18

터미널을 통해 파일 형식을 응용 프로그램과 연결하는 방법이 있습니까? ~ / Library / Preferences / com.apple.launchservices.plist가 그렇게 할 수 있다고 생각했으며, 또한 명령 줄이 ~ / Library / Preferences / com.apple.LaunchServices.plist로 변경되는 이유는 무엇입니까? 하지만 제대로 작동하지 않는 것 같습니다.

누군가 GUI를 사용하여 연결 유형을 변경할 때 GUI 가하는 일을 모방 할 수있는 방법을 찾고 있는데 즉시 작동하는 것 같습니다 ...

답변:


8

~/Library/Preferences/com.apple.LaunchServices.plist텍스트 편집기에서 XML로 변환 한 후 편집 할 수 있습니다 .

plutil -convert xml1 ~/Library/Preferences/com.apple.LaunchServices.plist

그런 다음 LSHandlers배열에 다음 과 같은 항목을 추가하십시오 .

<dict>
  <key>LSHandlerContentType</key>
  <string>com.adobe.pdf</string>
  <key>LSHandlerRoleAll</key>
  <string>net.sourceforge.skim-app.skim</string>
</dict>
<dict>
  <key>LSHandlerContentTag</key>
  <string>mkv</string>
  <key>LSHandlerContentTagClass</key>
  <string>public.filename-extension</string>
  <key>LSHandlerRoleAll</key>
  <string>org.videolan.vlc</string>
</dict>

당신이 사용할 수있는 mdls같은 파일 형식 뭔가의 요로 감염을 볼 osascript -e 'id of app "AppName"'응용 프로그램의 번들 식별자를 볼 수 있습니다.

com.apple.LaunchServices.plist다시 시작 하여 변경 사항을 적용 할 수 있습니다 . 로그 아웃했다가 다시 충분하지 않습니다.


참고 : duti더 이상 현재 개발 중이 아니며 관리자가 "지원되지 않음"으로 표시했습니다. 프로젝트는 구성 업데이트 외에 2012 년 이후 큰 진전을 보지 못했습니다. Sourceforge에서 Github로 이동했습니다. 이 답변은 새로운 링크를 포함하도록 업데이트되었습니다.

나는 또한 duti 를 사용 합니다. 다음과 같은 파일 (약 100 줄)을 ~/.duti다음 과 같이 저장했습니다 .

org.gnu.Emacs public.plain-text all # .txt, .text, plain text files without an extension
org.gnu.Emacs public.unix-executable all # executable scripts
com.SequentialX.Sequential .jpg all
org.videolan.vlc .mkv all

변경 duti ~/.duti되면 자동으로 실행되는 시작된 에이전트가 ~/.duti있습니다.

일반적으로 파일 형식을 지정하기 위해 .jpgUTI (같은 public.jpg) 대신 파일 이름 확장자 (같은 )를 사용할 수 있습니다 . duti확장을 다른 확장 (예 :)에도 적용되는 UTI로 변환합니다 .jpeg. .mkvand와 같은 일부 확장의 .tex경우 UTI는 확장을 먼저 등록한 응용 프로그램에 따라 다릅니다.

최신 버전duti유일한 소스 코드를 포함하지만, 1.5.0는 또한 설치 프로그램이 포함되어 있습니다.


5

듀티 확인 :

duti는 Andrew Mortensen이 작성한 명령 줄 도구로 Mac OS X에서 문서 유형 및 URL 체계에 대한 기본 응용 프로그램을 설정하도록 설계되었습니다.

Mac OS X의 문서 유형은 Apple이 UTI (Uniform Type Identifier)라고 부르는 것에 의해 정의됩니다. 예를 들어 HTML 파일의 UTI는 public.html입니다. Microsoft Word 문서는 UTI com.microsoft.word.doc에서 설명합니다. Apple은 Mac OS X과 함께 많은 UTI를 제공하지만 UTI가 해당 문서 유형에 고유 한 한 개발자는 자유롭게 자신의 것을 정의 할 수 있습니다.

duti의 이름은 "UTI의 기본값"을 의미합니다.


2
필수 제안 : brew install duti설치에 사용duti
Pier Paolo Ramon

1

다음은 트릭을 수행하는 duti에 대해 시작된 에이전트입니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.duti.watcher</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/duti</string>
      <string>/Users/joshgummersall/.duti</string>
    </array>
    <key>UserName</key>
    <string>joshgummersall</string>
    <key>KeepAlive</key>
    <false/>
    <key>WatchPaths</key>
    <array>
      <string>/Users/joshgummersall/.duti</string>
    </array>
  </dict>
</plist>

joshgummersall자신의 사용자 이름으로 바꾸 십시오. 나는에서이 파일을 배치 ~/Library/LaunchAgents/duti.plist, chmmod644 및 RAN에 D를 :

$ launchctl load -F -w ~/Library/LaunchAgents/duti.plist

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.