답변:
이 정보는 파일의 리소스 포크 ( Wikipedia )에 저장됩니다. 이 리소스 포크는 확장 된 속성 ( Wikipedia ) 으로 노출됩니다 .
$ ls -l@ somefile.txt
-rw-r--r-- 1 danielbeck staff 0 18 Mär 19:00 somefile.txt
# setting non-default application using Finder
$ ls -l@ somefile.txt
-rw-r--r--@ 1 danielbeck staff 0 18 Mär 19:01 somefile.txt
com.apple.ResourceFork 1338
처음부터 편집하는 것은 아마도 상당히 고통 스럽습니다. 많은 이진 데이터 :
$ xattr -p com.apple.ResourceFork somefile.txt
00 00 01 00 00 00 05 08 00 00 04 08 00 00 00 32
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 04 04 00 00 00 32 2F 55 73 65 72 73 2F 64
61 6E 69 65 6C 62 65 63 6B 2F 41 70 70 6C 69 63
61 74 69 6F 6E 73 2F 53 75 62 6C 69 6D 65 20 54
65 78 74 20 32 2E 61 70 70 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 08
00 00 04 08 00 00 00 32 0C 00 00 00 C0 05 00 00
00 1C 00 32 00 00 75 73 72 6F 00 00 00 0A 00 00
FF FF 00 00 00 00 19 00 00 00
그러나 이러한 리소스 포크를 파일처럼 취급 할 수 있습니다. 예를 들면 다음과 같습니다.
$ open somefile.txt # opens in Sublime 2
$ cp somefile.txt/..namedfork/rsrc openInSublime2rsrc
$ open otherfile.txt # opens in TextEdit
$ cp openInSublime2rsrc otherfile.txt/..namedfork/rsrc
$ open otherfile.txt # opens in Sublime 2
/..namedfork/rsrc
리소스 포크가 POSIX 응용 프로그램 (예 : 터미널에서 수행하는 모든 작업)에 노출되는 방식입니다.
따라서 기존 리소스 포크 (예 :)에서 하나의 "템플릿"파일을 생성 openInSublime2rsrc
하면 나중에 다른 파일로 복사 할 수 있습니다.
somefile.txt/..namedfork/rsrc
대신 사용해보십시오 . somefile.txt/rsrc
얼마 전에 사용되지 않습니다.
위의 Daniel Beck의 답변에서 얻은이 정보는 실제로 파일의 리소스 포크에 저장됩니다. Apple은 "Rez"및 "DeRez"라는 두 가지 유틸리티를 개발자 도구와 함께 제공하므로 리소스 포크를 조작 할 수 있습니다. 특히 Rez를 사용하여 리소스 포크를 파일로 푸시 할 수 있습니다.
명령 줄에서 단일 파일의 연결을 변경하려면 먼저 올바른 유형의 파일을 만들고 열려는 응용 프로그램과의 연결을 수동으로 변경하십시오. 이렇게하면 파일에 리소스 포크가 생성됩니다. 이렇게하지 않으면 복사 할 정보가 없습니다. 그런 다음 DeRez로 리소스 포크를 빼냅니다 (예 : foo.txt 파일을 가정하고 사용하려는 응용 프로그램이 Firefox.app라고 가정).
DeRez foo.txt > foo.r
그러면 텍스트 파일로 디 컴파일 된 리소스 포크 인 foo.r이라는 파일이 생성됩니다. 다음과 같이 보일 것입니다 :
data 'usro' (0) {
$"0000 001A 2F41 7070 6C69 6361 7469 6F6E" /* ..../Application */
$"732F 4669 7265 666F 782E 6170 7000 0000" /* s/Firefox.app... */
$"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
처음부터 새로 만들려면이 형식을 편집 할 수 있지만 형식이 정확하게 맞아야 합니다. 그렇지 않으면 작동하지 않습니다. 원하는 앱 번들의 경로를 설명하는 16 진수로 인코딩 된 문자이며 0으로 끝납니다.
리소스 포크가 비어 있고 초기화되지 않았다는 메시지가 표시 될 수 있습니다. 그렇다면 소스 파일에서 파일 별 연결을 변경하지 않았으므로 그렇게 한 다음 DeRez 명령을 다시 실행해야합니다.
이 파일이 있으면 다음과 같이이를 다른 파일로 푸시 할 수 있습니다 (bar.txt가 있다고 가정).
Rez foo.r -a -o bar.txt
foo.r의 리소스 포크로 bar.txt를 업데이트합니다.
Rez 또는 DeRez 인쇄 오류 메시지가 없으므로 제대로 작동하는지 확인하려면 다음과 같이하십시오.
DeRez bar.txt
이전과 동일한 정보가 표시되어야합니다. 그런 다음 평소와 같이 bar.txt 파일을 열면 기본 응용 프로그램이 아닌 올바른 응용 프로그램에서 열립니다.
배치 변경을 수행하려면 .r 파일이 있으면 다음과 같이 표준 와일드 카드 확장을 사용할 수 있습니다.
Rez foo.r -a -o *.txt
와일드 카드와 일치하는 모든 파일을 수행합니다.
10.7 에서이 작업을 수행했지만 이전 컴퓨터에서도 작동한다는 것을 이해합니다.
..namedfork/rsrc
가 수행하지 않는 기능을 수행하지 않는 것 같습니다 . 특정 도구에 대한 지식을 얻기 위해 (반) 내부에 대한 지식을 요구하는 거래 – 이것이 더 낫다고 확신하지는 않습니다.
주어진 유형의 특정 파일 세트와 관련된 응용 프로그램을 "일괄 변경"하고 싶다고 말합니다. 해당 파일 형식의 모든 인스턴스를 새 응용 프로그램으로 변경하고 싶지 않기 때문에 하위 집합.
그러나이를 수행하는 쉬운 방법은 없습니다. LaunchServices가 파일을 열도록 지시 할 응용 프로그램을 찾는 방법은 다단계 프로세스이며 다양한 범위 (사용자, 시스템 등)의 설정에 따라 다릅니다.
그러나- open
커맨드 라인에서 사용하고 이번에는 특정 앱을 사용하도록 지시 할 수 있습니다 . 이것은 연결을 변경하지는 않지만 원하는 말, 즉 특정 응용 프로그램에서 파일 세트를 엽니 다.
open -a <appbundle> <somefile> <anotherfile>
처럼
shiny:t fl$ ls -l
total 1848
-rwxr-xr-x 1 fl staff 1795 Mar 18 20:03 distribution.pl
-rw-r--r-- 1 fl staff 939264 Mar 18 20:03 objectreport.txt
shiny:t fl$ open -a TextWrangler distribution.pl objectreport.txt
그리고 커맨드 라인에서 완전히 멀어지면 다음 유틸리티를 살펴보십시오 : http://michelf.com/software/magic-launch/
open -a TextWrangler *
훨씬 빠릅니다.