별칭(Mac OS)
Alias (Mac OS)유형코드 | 알리스 |
---|---|
동일 유형 식별자(UTI) | com.apple별칭 파일 |
매직넘버 | 'book\0\0\0\0mark\0\0\0\0' |
개발자 | 애플 |
형식 유형 | 지름길 |
고전적인 맥 OS시스템 7과 후에, macOS에에서, 원격 또는 removable[1]로컬 파일 시스템에이고 동적 링크 제공한다. 대상 개체거나 이름을 바꾸지 않는다면 원본 파일이 재현돼 있는 별칭는 곳에(;이런 별칭과 어떻게는 모호하다 연결하는 이동해야 합니다 다른 개체를 나타낸 가명은 작은 파일입니다.레해결되는 방법은 MacOS 버전에 따라 다르다.윈도우즈에서는 .lnk 확장자의 파일인 "숏컷"이 유사한 기능을 수행한다.
유닉스 심볼릭 링크와 유사하지만, 동일한 디스크의 다른 위치로 대상 파일이 이동하더라도 작업하는 구별(이 경우 하드 링크처럼 작용하지만 링크의 소스와 대상은 다른 파일 시스템에 있을 수 있고, 링크의 대상은 디렉토리가 될 수 있다).BSD의 후손으로, macOS는 Unix 심볼릭(그리고 하드) 링크도 지원한다.
함수
별칭은 문서, 응용프로그램, 폴더, 하드 디스크, 네트워크 공유 또는 이동식 매체 또는 프린터와 같은 파일 시스템의 모든 오브젝트에 대한 스탠드인 역할을 한다.두 번 클릭할 때 컴퓨터는 원본 파일을 두 번 클릭했을 때와 같은 방식으로 작동하게 된다.마찬가지로 '파일 열기' 대화 상자에서 별칭 파일을 선택하면 원본 파일이 열리게 된다.별칭의 목적은 사용자가 파일을 직접 복사할 필요 없이 파일에 액세스할 수 있는 대체 방법을 제공하여 대량의 파일을 관리하는 데 도움을 주기 위함이다.클래식한 Mac OS의 일반적인 별칭은 작았지만, 1에서 5KB 사이, MacOS의 경우 폴더의 별칭에 대해 5MB(5000KB)를 초과하는 상당히 클 수 있다.
별칭 오류 방지
별칭은 객체에 대한 동적 참조다.원본은 링크를 끊지 않고 동일한 파일 시스템 내의 다른 위치로 이동할 수 있다.운영 체제는 원본에 대한 여러 정보를 별칭 파일의 리소스 포크로 저장한다.원본을 찾는 데 사용되는 정보의 예는 다음과 같다.
- 경로
- 파일 ID(인ode 번호)
- 디렉토리 ID(인ode 번호)
- 이름을 붙이다
- 파일 크기
이러한 속성들 중 어떤 것도 컴퓨터의 지식 없이도 변할 수 있기 때문에, 사용자 활동의 결과로서, 가장 그럴듯한 대상을 찾기 위해 다양한 검색 알고리즘을 사용한다.이러한 오류 허용성은 복잡성과 예측 불가능성의 증가를 희생시키면서 Unix 심볼 링크나 Microsoft Windows 바로 가기 같은 일부 다른 운영 체제의 유사한 기능과 별칭을 구분한다.예를 들어, 애플리케이션은 동일한 파일 시스템 내에서 한 디렉토리에서 다른 디렉토리로 이동할 수 있지만, 기존 별칭은 두 번 클릭해도 동일한 애플리케이션을 실행할 수 있다.
별칭을 사용하여 원래 이름과 원본 파일의 새 위치를 모두 찾을 수 있기 때문에 파일을 이동한 다음 원래 이동된 파일과 동일한 이름으로 파일을 만드는 경우 별칭이 어떻게 작동해야 하는지에 대한 문제가 발생할 수 있다.심볼릭 링크(Symbolic Links)에서는 참조가 모호하지 않다(소프트 링크는 원본에 대한 새로운 파일, 하드 링크를 참조한다).그러나 Mac OS X 10.2 이전에는 이렇게 모호한 별칭이 재생성된 파일보다는 원래 이동된 파일을 일관되게 찾을 수 있었다.Mac OS X 10.2 이상 버전에서는 심볼 링크[1]의 동작과 일치하는 새 파일이 발견된다. MacOS 애플리케이션은 필요한 경우 이전 동작을 프로그래밍 방식으로 사용할 수 있다.
별칭은 OS/2 운영 체제의 그래픽 Workplace Shell에 있는 섀도와 작동 방식이 유사하다.
구분 기호
시스템 7에서 Mac OS 9까지에서 별칭은 파일 이름이 기울임꼴로 되어 있다는 사실 때문에 사용자와 시각적으로 구별된다.이탤릭체가 없는 언어(예: 일본어)를 수용하기 위해 Mac OS 8.5에서는 "alias 화살표" 즉, 작은 흰색 테두리가 있는 검은색 화살표로 Microsoft Windows의 바로 가기에 사용되는 것과 유사하게 구별되는 마크를 추가했다.
macOS에서 가명의 파일 이름은 기울임꼴이 아니라 화살표 배지가 남아 있다.
파일 구조
MacOS의 별칭 파일은 매직넘버로 시작한다. 62 6F 6F 6B 00 00 00 00 6D 61 72 6B 00 00 00 00
ASCII로book␀␀␀␀mark␀␀␀␀
표시됨(Null 문자를 나타냄).
매직넘버에 이어 가명 안에 일련의 레코드가 들어 있으며, 각 레코드의 길이는 150바이트에 달하며 아래에 표시된 필드로 구성된다(모든 정수는 큰 엔디안이다).[2]그러나 별칭 파일은 이것이 설명하는 것보다 훨씬 더 크며, 적어도 아이콘을 포함한 다른 정보를 포함한다.[3][4]
- 4바이트 사용자 유형 이름/앱 생성자 코드 = 긴 ASCII 텍스트 문자열(없음 = 0)
- 2바이트 레코드 크기 = 서명되지 않은 짧은 총 길이
- 2바이트 레코드 버전 = 짧은 정수 버전(현재 버전 = 2)
- 2바이트 별칭 종류 = 짧은 정수 값(파일 = 0, 디렉토리 = 1)
- 1바이트 볼륨 이름 문자열 길이 = 서명되지 않은 바이트 길이
- 27바이트 볼륨 이름 문자열(볼륨 이름 문자열 < 27 문자 > 그 다음 0으로 패드)
- 4바이트 볼륨 생성 Mac 날짜 = 1904~2040년 시작 이후 서명되지 않은 긴 값(초)
- 2바이트 볼륨 서명 = 서명되지 않은 짧은 HFS 값
- 2바이트 볼륨 유형 = 짧은 정수 mac OS 값(유형은 고정 HD = 0, 네트워크 디스크 = 1, 400kB FD = 2,800kB FD = 3; 1.4)MB FD = 4; 기타 배출 가능 미디어 = 5 )
- 4바이트 상위 디렉토리 ID = 서명되지 않은 긴 HFS 값
- 1바이트 파일 이름 문자열 길이 = 서명되지 않은 바이트 길이
- 63바이트 파일 이름 문자열(파일 이름 문자열 < 63자 이하, 0으로 패드)
- 4바이트 파일 번호 = 서명되지 않은 긴 HFS 값
- 4바이트 파일 생성 Mac 날짜 = 1904년부터 2040년까지 시작한 이후 긴 서명되지 않은 값(초)
- 4바이트 파일 형식 이름 = 긴 ASCII 텍스트 문자열
- 4바이트 파일 작성자 이름 = 긴 ASCII 텍스트 문자열
- 2바이트 nlvl 시작(별칭부터 루트까지의 디렉터리) = 짧은 정수 범위
- 2바이트 nlvl To(루트에서 소스로의 디렉터리) = 짧은 정수 범위(다른 볼륨의 별칭에서 위 -1로 설정된 경우)
- 4바이트 볼륨 특성 = 긴 16진수 플래그
- 2바이트 볼륨 파일 시스템 ID = 짧은 정수 HFS 값
- 10바이트 예약 = 0으로 설정된 80비트 값
- 4+ bytes optional extra data strings = short integer type + short unsigned string length (types are Extended Info End = -1; Directory Name = 0; Directory IDs = 1; Absolute Path = 2; AppleShare Zone Name = 3; AppleShare Server Name = 4; AppleShare User Name = 5; Driver Name = 6; Revised AppleShare info = 9; AppleRemoteAccess dialup info = 10)
- 문자열 데이터 = 16진수 덤프
- 홀수 길이에 1바이트 홀수 문자열 길이 패드가 있음 = 바이트 값이 0으로 설정됨
별칭 레코드 구조가 크기를 벗어남
다음은 애플의 Alias Resource Manager와 함께 사용하기 위한 것이다.
- 4바이트 리소스 유형 이름 = 긴 ASCII 텍스트 문자열
- 2바이트 리소스 ID = 짧은 정수 값
- 2바이트 리소스 끝 패드 = 0으로 설정된 짧은 값
별칭 파일에 플래그를 지정하는 Java 코드
// 이 함수는 파일이 별칭 매직 넘버와 일치하는지 확인한다. 공중의 정태의 부울 checkForMacAlias파일(파일 입력파일) 던지다 FileNotFoundException, IOException { // 파일만 별칭이 될 수 있다. // 디렉터리를 테스트하지 마십시오. 잘못된 디렉터리가 될 수 있음. 만일 (입력파일.is파일()) { 바이트[] 북마크 = 새로운 바이트[] { 0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00 }; 장기의 길이 = 입력파일.길이(); 만일 (길이 > 16) { 바이트[] 결과 = 새로운 바이트[16]; FileInputStream 낚시질하다 = 새로운 FileInputStream(입력파일); 낚시질하다.읽다(결과); 낚시질하다.가까운.(); 돌아오다 배열.대등하다(결과, 북마크); } } 돌아오다 거짓의; }
여기에 작동하는 C++ 코드가 있는 github repo가 있다.
별칭 관리
사용자 인터페이스
시스템 7에서 별칭을 만드는 유일한 방법은 원본을 선택하고 "파일" 메뉴에서 "별칭 만들기"를 선택하는 것이었다.그런 다음 동일한 이름과 "별칭"이 추가된 별칭이 동일한 폴더에 생성된다.이후 버전에서는 명령어와 옵션 한정자 키를 누른 채 드래그 앤 드롭으로 별칭을 만들 수 있게 되었다.
맥 OS 8.5는 이런저런 이유로 끊어진 별칭을 다시 연결하는 기능(단순 검색 알고리즘이 신뢰할 수 있는 대체품을 찾지 못한 경우)을 추가했다.이는 표준 파일 열기 대화 상자를 통해 새 대상을 선택하여 수행되었다.
Mac OS 8.5에서는 Finder에서 개체를 끌어서 해당 위치에 별칭을 생성하도록 명령 옵션을 추가했다.여기에 별칭 커서가 시스템에 추가되었다.커서는 Windows 시스템에서 "바로 가기 만들기" 커서의 모양을 반영한다.
API 프로그래밍
Alias Manager API는 Carbon의 일부분이다.맥 OS클래식에 존재했는지는 알려지지 않았다.[5]
Mac OS X 10.6은 코코아의 일부로 몇 가지 별칭 관련 API를 도입했다.NSURL
.[6]
BSD 심볼 링크 및 하드 링크와의 관계
유닉스 및 유사한 운영 체제는 맥OS 별칭과 매우 유사한 2가지 기능을 제공한다: 심볼릭 링크와 하드 링크.macOS Finder를 사용할 때 링크는 주로 macOS 별칭처럼 표시되고 처리되며, 심지어 동일한 "Kind" 속성도 가지고 있다.그러나 셸 명령줄을 사용할 때는 macOS 별칭을 인식할 수 없다. 예를 들어, cd 명령을 별칭 파일 이름과 함께 사용할 수 없다.이는 파일 시스템 내에서 링크가 구현되는 동안 API로 해석해야 하는 디스크의 파일로 별칭이 구현되어 OS의 어느 수준에서나 기능하기 때문이다.
현재 참조하는 파일이나 디렉토리의 경로에 대한 별칭을 해결하기 위한 사전 설치된 명령이 없다.그러나 자유롭게 이용할 수 있는 C 프로그램은 이 작업을 수행하기 위해 Mac Carbon API를 사용한다.[7]그런 점을 감안해 cd와 같은 명령을 설정해 별칭을 확인하고 상징적 또는 하드 링크처럼 취급할 수 있다.
참조
- ^ "Chapter 4 - Alias Manager / About the Alias Manager - Search Strategies". Inside Macintosh: Files. Archived from the original on October 7, 2008.
- ^ 웹에서 수집된 MacOS 별칭에 대한 일부 정보. (역설계 작업)
- ^ "Why are Finder alias files so huge lately?". Apple Support Communities.
- ^ "Further details, including changes with various Mac OS versions". Archived from the original on 2013-04-30. Retrieved 2018-10-11.
- ^ "Alias Manager". Apple Developer Documentation.
- ^ "Deprecation · Issue #3 · nathanday/ndalias · GitHub".
- ^ Davis, Thos. "getTrueName.c". Mac OS X Hints. IDG. Retrieved 24 October 2016.
외부 링크