Mac OS X의 숨겨진 파일들과 디렉토리들
옮긴 글 - Mac OS X Hidden Files & Directories
Mac OS X 볼륨에는 상당히 많은 파일들과 디렉토리들(폴더들)이 Finder에서는 보이질 않습니다. 대부분은, 그럴만한 이유가 있어서 숨겨져 있으며 특별한 경우가 아니라면 건드릴 필요도 없을 겁니다. 하지만, 만약을 대비해서 숨겨져 있는 것들의 대략적인 설명을 이 곳에 해놓았습니다.
._어쩌구저쩌구 - 이 파일들은 본래 HFS 파일 특성들을 완전하게 지원하지 못 하는 볼륨들(예를 들어 ufs 볼륨들, Windows 파일 공유 등)에 생성된다. 그래서 Mac 파일들이 이런 볼륨으로 복사될 때, 파일의 데이타 포크(data fork)는 파일 이름으로 저장되고, 더불어 추가 HFS 정보(resource fork, type & 생성 코드, 등)는 "._"로 시작하는 이름의 추가 파일(AppleDouble 형식)에 저장된다. (물론 이런 파일들은 OS X 상에서는 보이질 않지만, 기타 OS들에서는 그렇지를 않아서 어떤 경우에는 이것이 문제가 될 수도 있다.)
.DS_Store - 이 파일은 Finder에 의해 생성되며 폴더의 보기 선택사항들, 아이콘 위치, 그리고 폴더에 관한 가시적 정보들을 저장하게 된다. 각각의 .DS_Store 파일들은 여러 해당 디렉토리들에 관한 정보들을 저장해 놓기 위해 매 디렉토리에 개별적으로 생성되기 때문에, OS X Finder에서 열어본 폴더들에는 항상 이 파일이 생성되기 마련이다.
~/.Trash - 특정 사용자가 시동 볼륨에 있는 파일들이나 폴더들을 휴지통으로 버렸으나 아직 지우지는 않았을 경우에 임시로 보관되는 곳.
/.Spotlight-V100 - 메타데이타(metadata) 색인들과 Spotlight(버전 1.00)의 색인 규칙들의 정보가 저장된 곳. Mac OS X 10.4에서만 생성됨.
/Volumes/(어쩌구저쩌구)/.Trashes - 시동 볼륨이 아닌 볼륨들의 경우, 휴지통에는 버려졌으나 아직 지워지지 않은 파일들이나 폴더들이 .Trashes 폴더에 임시로 저장된다. 각각의 사용자들은 저마다의 개인 휴지통을 가지고 있기 때문에 .Trash의 바로 아래 디렉토리에는 각 사용자 ID에 해당하는 이름의 하위 폴더가 생성된다. 예를 들어, ID 501의 사용자가 "Data" 볼륨을 휴지통으로 버리게 되면, 바로 /Volumes/Data/.Trashes/501/ 디렉토리로 이동된다.
이 폴더의 권한은 오직 버렸던 사용자만이 접근할 수 있게 되어 있으며, 다른 사용자의 휴지통에 버려진 파일들의 목록은 볼 수가 없다.
/.hidden - 이 곳에는 Finder가 숨기려는 파일들의 목록이 저장되어 있다 - 이것은 OS X에서 파일들을 안보이게 할 수 있는 세 가지 방법들 중 하나이다. (여기서 이 세 가지 방법들은 아래의 내용을 참고.) 이 방법은 이젠 구식이어서, Mac OS X 10.4의 표준 설치 상태에선 비어있게 되지만, 아직은 만약 이곳에 파일이 존재하게 되면 Finder에서는 이것을 참고하게 된다.
/.hotfiles.btree - 일반적으로 사용되는 작은 파일들의 디스크 상 위치를 추적하는데 사용되며, 나중에 최적화 작업(adaptive hot file clustering)에 이 정보가 읽혀진다.
/.vol - 이 가상 디렉토리는 파일들에 접근할 때, 이름이 아닌, 파일의 ID 번호(inode 번호)를 가지고 접근할 때 사용된다. 예를 들어, /.vol/234881034/105486/는 #234881034 볼륨에 있는 #105486 파일을 가르킨다.
/automount - OS X 10.1에서 네트워크 볼륨들의 "일종의 정적" 마운트 작업들을 관리하는데 사용된다. 대부분의 유닉스들에서는, 네트워크 볼륨이 클라이언트에서 정적으로 마운트될 시에, 파일 시스템의 어딘가에 올려지게 되어 일반 디렉토리처럼 보여진다. OS X 10.1에서 정적으로 마운트된 네트워크 볼륨은 실제적으로 /automount에 올려지고, 심볼릭(symbolic) 링크로 볼륨이 일반적으로 올려지는 곳을 가리키게 되면서 정상적인 볼륨처럼 보이게 된다. (이것은 아래에서 설명된 /private/Network를 통해 처리되는 네트워크 마운트 동작과 차이가 있다.)
/bin- 이 곳은 유닉스 형태의 binary들(말하자면, 프로그램들, 혹은 터미널 명령들)이 위치하고 있는 몇 가지 여러 장소들 중의 한 곳이다. /bin 속에 위치하는 프로그램들은 유닉스 터미널과 여러 shell들에서 사용되는 아주 일반적이고 기본적인 것들이다. (예. ls 그리고 rm)
이것들 외에 기타 비슷한 파일들은 /sbin, /usr/bin, /usr/sbin, 그리고 /usr/local/bin, /usr/local/sbin, 또 터미널에서 일반 /Applications 디렉토리와 비슷하게 생각될 수 있는~/bin/powerpc-apple-macos에 위치하고 있다.
/cores - (이것은 실제로 /private/cores에 위치하고 있으며, /cores는 symbolic 링크에 불과하다.)
어떤 특정한 상황에서, 만약 프로그램이 죽는다면, 프로그램이 죽었을 당시의 상태 복사본이 담긴 "core를 K아내게" 되는데 이것들이 저장되는 장소가 바로 이 곳이다. 이 곳은 단지 프로그램의 오류를 찾으려는 프로그래머들에게나 쓸모가 있다.
/div - 이 디렉토리에는 기술적으로 장비의 특수 파일들(device special files)이 위치하고 있다. 이것들은 일반적 상식의 실제 파일들은 아니고, 시스템에 붙어있는 장비들(디스크, 키보드, 모니터, 네트워크 접속 등)을 관리하기 위한 저장소와 같은 구실을 한다.
/etc - (이것은 실제로 /private/etc에 위치하고 있으며, /etc는 symbolic 링크에 불과하다.)
일반적인 유닉스 시스템에서 /etc 폴더는 설정 정보를 지정하는 문서들과 실제로 다양한 설정 작업들을 실행하는 스크립트들을 포함하는 시스템 설정 파일들이 저장되어 있다. OS X에서 이곳에 저장된 몇몇 설정 정보들은 NetInfo 혹은 기타 디렉토리 서비스들에 의해 덮어씌어지게 되지만, /etc 파일들은 계속 존재하게 된다.
/lost+found - 만약 Disk Utility 혹은 fsck가 "고아가 된" 파일들(예를 들어, 파일들은 존재하지만, 실제로 어떠한 디렉토리에도 위치하지 않은 파일들)을 발견시, 이 곳에 저장된다.
/Network - 이것은 Finder에서 컴퓨터 수준으로 보여지는 네트워크 항목의 "실제" 위치이다. 여기는 네트워크 자원들과 서버 볼륨들을 붙이기 위해 필요한 장소를 제공한다. OS X 10.1에서 네트워크 자원들은 실제로 /private/Network에 올려지는 경향이 있으며, 이것을 가리키는 symbolic 링크가 /Network에 생성된다.
OS X 10.3의 경우, 다양한 네트워크 자원들(주로 서버들)은 (약간은 가상 파일시스템의 마법 덕분에) 유동적으로 /Network에서 보여지게 된다.
/mach, /mach.sym, /mach_kernel - Mac OS X의 아주 밑바닥 핵심에서 실행되는 Mach 커널로서, 이것에 접근할 수 있는 몇 가지의 단축 방법들이 함께하고 있다.
/private - OS X에서 특정 루트 수준의 디렉토리들은 실제로 /private에 위치하는 디렉토리들을 가리키는 symbolic 링크들이다. 이러한 예에는 /cores, /etc, 그리고 /var들이 있으며, 이들은 각각 /private/cores, /private/etc, 그리고 /private/var와 연결되어 있다. /private은 또한 특정 주변 장치들의 드라이버들을 저장하고 있는 디렉토리들을 포함하고 있다.
/private/Network - OS X 10.1에서 네트워크 볼륨들의 (유동적) 네트워크 마운트들을 관리하는데 사용되었었다. 이전 버전에서는, 네트워크 마운트들은 /Network에 올려졌었으나, 10.1에 와서는 실제로 /private/Network에 올려지며, symbolic 링크가 /Network에 위치하면서 실제 마운트 포인트를 가리키게 된다.
/sbin - /sbin 디렉토리는 /bin과도 비슷하지만 시스템 관리에 사용되는 특정 바이너리들이 포함되어 있다는 것이 차이점이다. (예, mount 그리고 fsck)
/tmp - (이것은 실제로 /private/tmp에 위치하고 있으며, /tmp는 symbolic 링크에 불과하다.)
하드 디스크의 임시 공간이 필요로한 프로그램들은 /tmp 디렉토리에 임시 파일들을 쓰게 된다. (간혹 /var/tmp가 대신 사용되기도 함.)
/usr - /usr 디렉토리에는 특정 일반 유닉스 사용자가 사용하는 바이너리들과 파일들이 저장되어 있는 많은 서브디렉토리들을 포함하고 있다.
/usr/bin - 유닉스 바이너리들이 저장되어 있는 또 다른 장소.
/usr/lib - Mac OS X에서 프로그램을 짜는데 사용되는 라이브러리들. Developer Tools를 설치하지 않았다면, 대부분은 비어있게 된다. Mac OS X의 다양한 "Library" 디렉토리들과는 아무런 관계가 없다.
/usr/libexec - 다양한 디몬(daemon) 프로그램들, 시스템 유지보수 스크립트들, 그리고 기타 유닉스 형태의 보통 사람이 직접 실행하지 않는 프로그램들이 위치하는 곳.
/usr/local - 보통 대부분의 유닉스들에선, 이 디렉토리에 일반 OS 설치에 추가되는 맞춤형 파일들이나 추가 파일들이 저장된다. (예. /usr/local/bin에는 시스템 관리자에 의해 추가된 유닉스 바이너리들이 설치된다.) 이 디렉토리는 유닉스 격의 Mac OS X 로컬 라이브러리와도 비슷하게 생각될 수 있다. 기본 Mac OS X 설치시에 이 곳은 당연히 완전하게 비어있다.
주의: OS X 10.2에서는, 이 곳 디렉토리들이 더 이상 터미널 실행 파일들을 위한 검색 경로로 포함되어 있지 않다. 결과적으로, 이 곳에 설치되어 있는 것들은 추가적인 조치를 해주지 않는 이상 사용될 수가 없다.
/usr/sbin - 유닉스 바이너리들이 저장되어 있는 또 다른 장소.
/usr/share - 기본적으로 여러 시스템 구조들에서 공통적으로 사용될 수 있는 여러 데이타들과 텍스트 파일들이 포함되어 있다. (이 디렉토리가 가지는 차별성은 Mac OS X 말고 서로 다른 구조와 형태들을 갖는 유닉스들에서 더 적절하게 이해될 수 있을 것이다.)
/usr/standalone - (잠재적으로) 다양한 컴퓨터 형태들을 위한 부트 로더(boot loader) 프로그램들이 저장된 곳. 내가 살표본 바로는, 이것은 단지 System/Library/CoreServices/BootX 디렉토리에 있는 BootX loader의 복사본에 지나지 않지만, 왜 두 개의 복사본이 필요한지는 이유를 알 수 없다.
/var - (이것은 실제로 /private/var에 위치하고 있으며, /var는 symbolic 링크에 불과하다.)
가끔 OS에 의해 조종되는 작업들은 변수 파일들을 저장할 장소가 필요하게 된다. 인쇄 작업이나 로그 파일들을 저장하는 프로그램들은 /var 디렉토리 아래에 위치하는 하부 디렉토리에 이런 파일들을 저장하게 된다. 또한 이 곳에는 (특히 /var/db의 경우에) 많은 양의 설정 관련 정보들을 저장하고 있다.
/var/backups - 중요한 시스템 정보들의 백업들을 저장하는데 사용된다. (주로, 매일 밤 저장되는 NetInfo 데이타베이스들)
/var/db - 시스템 정보에 관란 다양한 데이타베이스들이 저장된 곳. 가장 대표적인 것은 /var/db/netinfo에 저장된 NetInfo 데이타베이스들과 시스템의 네트워크 설정 데이타베이스(/var/db/SystemConfiguration/preferences.xml - 10.3에 와서는 /Library/Preferences/SystemConfiguration/으로 옮겨졌다.)가 있는데 대부분은 시스템과 네트워크 설정 정보가 저장되어 있으며, 전통적인 유닉스 관점에서는 /etc 디렉토리에서 찾을 수 있는 파일들이다.
/var/log - 이 곳에는 많은 시스템 이벤트들의 로그 파일들이 저장되어 있는 곳으로 기타 다른 로그 파일들은 /Library/Logs/ 디렉토리에도 위치한다.
/var/root - 루트(root 혹은 superuser) 계정의 홈(Home) 디렉토리. 주의할 것은 비록 루트 계정을 활성화 하지 않았더라도 존재하게 된다.
/var/run - 시스템에서 실행되고 있는 작업들(특히 daemon들)에 관한 다양한 상태 정보가 저장되어 있는 곳.
/var/tmp - /tmp와 같이 프로그램들이 임시 데이타를 저장하는 곳. 어떤 프로그램들은 이 곳을 사용하고, 또 어떤 것은 다른 곳을 사용하기 때문에 Mac OS X에서는 두 곳 모두를 제공하고 있다.
/var/vm - Mac OS X의 가상 메모리를 위한 바꿔치기(swap) 파일들이 저장되는 곳.
/var/vm/app_profile - 다양한 어플리케이션들의 가상 메로리 사용 현황에 관한 정보가 있는 곳.
/Volumes - /Volumes 디렉토리는 시스템에 접속되어 있는 (시동 볼륨을 제외한) 모든 장비들의 마운트 포인트(mount point)가 된다. Finder에서는 Volumes 디렉토리 자체는 숨기지만, 그 내용물은 컴퓨터에서 보여지게 된다.
왜 7 개나 되는 바이너리 디렉토리들이 필요한가?
Mac OS X의 터미널에서 명령어를 치면, 적당한 프로그램을 돌리기 위해 모두 7 군데의 디렉토리를 찾게 됩니다. 왜 이리 많냐고 생각하실겁니다. 글쎄요, 설명하자면 이들은 몇 가지의 서로 다른 특성들에 의해 구분되어져 있고, 또한 이런 특성들은 더 많은 조합들의 가능성을 가지고 있기 때문에, 결국은 다양한 서로 다른 구분들에 의해 프로그램들이 나뉘어지게 되었습니다. 여기에는 비교적 일정한 형식으로 구분될 수 있는 6 개의 디렉토리들이 있으며, 나머지 하나는 어떻게 잘 구분될 수도 없는 것이 있습니다. 먼저 처음의 6 가지의 디렉토리들에 대해 이야기해 보겠습니다.
첫 번째 구별법: "bin"과 "sbin". 이 6 개의 일정한 디렉토리들은 "bin"과 "sbin"의 이름들이 서로 쌍으로 존재하고 있다. "bin" 버전에는 일반적으로 사용되는 프로그램들이 포함되어 있으며, "sbin" 버전에는 통상 시스템 관리를 목적으로 하는 프로그램들이 포함되어 있다. 이것의 구별은 어쩌면 제멋대로일 수도 있으며 (예를 들어, IP ping 도구는 sbin 디렉토리에 있지만, 이것의 AppleTalk 버전은 bin 디렉토리에 위치한다), sbin에 위치한 프로그램들은 (비록 몇몇은 관리자 혹은 root 권한이 아니면 실행되지 않을 수도 있지만) 모든 사용자들에게 접근 가능하다.
두 번째 구별법: / 와 /usr/ 그리고 /usr/local/. 이들 각각의 디렉토리들은 bin과 sbin의 하부 디렉토리들을 포함하고 있다. 대부분의 프로그램들은 /usr/ 버전에 위치하고 있으며, 몇몇의 더 중대한 핵심 프로그램들(특히 시동 작업에 필요한 것들)은 대신 / 디렉토리들에 위치한다. 이러한 이유는, /usr 디렉토리를 네트워크의 매 컴퓨터들마다 독자적인 복사본을 저장해 둘 필요없이 파일 서버에 보관할 수도 있기 때문이다. 그래서, 클라이언트 컴퓨터가 /usr 디렉토리에 접근할 필요 없이도 서버에 접속해서 접근 가능할 수가 있게 되며, 절대적으로 필요한 프로그램들은 언제나 사용 가능한 /bin 혹은 /sbin에 위치해야 한다. 마지막으로, 컴퓨터에서 직접 설치한(에를 들어, Apple에 의한 일반 시스템 설치가 아닌 시스템 관리자에 의해 설치된) 프로그램들은 /usr/local/에 위치하게 된다. 그래서 만약 표준 OS X 시스템에선, /usr/local 디렉토리가 완전하게 비어있는 것을 확인할 수가 있다.
주의: 10.2에서는, /usr/local/bin과 /usr/local/sbin 디렉토리는 터미널의 기본 검색 경로에서 제외되어 있어서, 기본적으로는 별 쓸모가 없게 되었다.
마지막으로, bin/sbin 쌍을 이루는 형식에도 맞지 않는 독특한 성질의 디렉토리가 있는데, 그것은 바로 ~/bin/powerpc-apple-macos라는 이름을 가진 (이제는 존재하지 않는) 사용자의 개별 bin 디렉토리입니다. 왜 이런 이상한 이름을 가졌냐구요? 원래는, 만약 홈 디렉토리가 네트워크 상에서 몇몇의 서로 다른 구조의 컴퓨터들(Linux, Solaris...)과 공유되어 있을 경우를 대비해서 존재하고 있습니다. 일반적으로 사용하고자 하는 어떤 한 바이너리 프로그램은 서로 다른 구조의 컴퓨터들에서는 작동하지 않을 수도 있기 때문에, 어떠한 특정 컴퓨터를 사용하느냐에 따라 또 다른 바이너리들 준비해 두고 싶을 때가 있을 것입니다. 그 때 이 디렉토리가 사용되는데, 10.1에 와서는 기본 검색 경로에서 삭제되었기 때문에, 지금은 단지 과거 기록으로서만 남아있습니다.
숨겨둔 이유들
Mac OS X는 Finder에서 파일과 폴더를 감추는데 세 가지의 방법이 사용됩니다. - 예전의 Mac OS 시스템들에서는 "안보이는" 파일 속성이 있었고, 유닉스 시스템들에서 사용되는 것 처럼 파일 이름이 "."로 시작되거나, 혹은 파일이 /.hidden file의 목록에 포함되어 있을 수 있습니다. 위에서 설명된 많은 파일들과 디렉토리들은 실제로 여러가지 방법들로 감추어져 있습니다. (예를 들어, /bin은 /.hidden 목록에 포함되어 있으며, 또한 안보이는 속성을 가지고 있습니다.)
주의할 것은 OS X는 오로지 시동 볼륨의 .hidden 파일들만 인식을해서, 만약 다른 디스크에서 시동을 하게 되면, 정상적으로는 보이지 않았던 파일들이 갑자기 나타나게 됩니다. 또한, Mac OS 9과 같은 예전 버전들에서는 안보이는 파일 속성만을 인식하기 때문에, Mac OS 9으로 시동하면 더 많은 파일들(주로 /.vol, /mach, /mach.sym, 그리고 몇몇 .DS_Store)이 보여지게 됩니다.
옮긴 글 - Mac OS X Hidden Files & Directories
Mac OS X 볼륨에는 상당히 많은 파일들과 디렉토리들(폴더들)이 Finder에서는 보이질 않습니다. 대부분은, 그럴만한 이유가 있어서 숨겨져 있으며 특별한 경우가 아니라면 건드릴 필요도 없을 겁니다. 하지만, 만약을 대비해서 숨겨져 있는 것들의 대략적인 설명을 이 곳에 해놓았습니다.
._어쩌구저쩌구 - 이 파일들은 본래 HFS 파일 특성들을 완전하게 지원하지 못 하는 볼륨들(예를 들어 ufs 볼륨들, Windows 파일 공유 등)에 생성된다. 그래서 Mac 파일들이 이런 볼륨으로 복사될 때, 파일의 데이타 포크(data fork)는 파일 이름으로 저장되고, 더불어 추가 HFS 정보(resource fork, type & 생성 코드, 등)는 "._"로 시작하는 이름의 추가 파일(AppleDouble 형식)에 저장된다. (물론 이런 파일들은 OS X 상에서는 보이질 않지만, 기타 OS들에서는 그렇지를 않아서 어떤 경우에는 이것이 문제가 될 수도 있다.)
.DS_Store - 이 파일은 Finder에 의해 생성되며 폴더의 보기 선택사항들, 아이콘 위치, 그리고 폴더에 관한 가시적 정보들을 저장하게 된다. 각각의 .DS_Store 파일들은 여러 해당 디렉토리들에 관한 정보들을 저장해 놓기 위해 매 디렉토리에 개별적으로 생성되기 때문에, OS X Finder에서 열어본 폴더들에는 항상 이 파일이 생성되기 마련이다.
~/.Trash - 특정 사용자가 시동 볼륨에 있는 파일들이나 폴더들을 휴지통으로 버렸으나 아직 지우지는 않았을 경우에 임시로 보관되는 곳.
/.Spotlight-V100 - 메타데이타(metadata) 색인들과 Spotlight(버전 1.00)의 색인 규칙들의 정보가 저장된 곳. Mac OS X 10.4에서만 생성됨.
/Volumes/(어쩌구저쩌구)/.Trashes - 시동 볼륨이 아닌 볼륨들의 경우, 휴지통에는 버려졌으나 아직 지워지지 않은 파일들이나 폴더들이 .Trashes 폴더에 임시로 저장된다. 각각의 사용자들은 저마다의 개인 휴지통을 가지고 있기 때문에 .Trash의 바로 아래 디렉토리에는 각 사용자 ID에 해당하는 이름의 하위 폴더가 생성된다. 예를 들어, ID 501의 사용자가 "Data" 볼륨을 휴지통으로 버리게 되면, 바로 /Volumes/Data/.Trashes/501/ 디렉토리로 이동된다.
이 폴더의 권한은 오직 버렸던 사용자만이 접근할 수 있게 되어 있으며, 다른 사용자의 휴지통에 버려진 파일들의 목록은 볼 수가 없다.
/.hidden - 이 곳에는 Finder가 숨기려는 파일들의 목록이 저장되어 있다 - 이것은 OS X에서 파일들을 안보이게 할 수 있는 세 가지 방법들 중 하나이다. (여기서 이 세 가지 방법들은 아래의 내용을 참고.) 이 방법은 이젠 구식이어서, Mac OS X 10.4의 표준 설치 상태에선 비어있게 되지만, 아직은 만약 이곳에 파일이 존재하게 되면 Finder에서는 이것을 참고하게 된다.
/.hotfiles.btree - 일반적으로 사용되는 작은 파일들의 디스크 상 위치를 추적하는데 사용되며, 나중에 최적화 작업(adaptive hot file clustering)에 이 정보가 읽혀진다.
/.vol - 이 가상 디렉토리는 파일들에 접근할 때, 이름이 아닌, 파일의 ID 번호(inode 번호)를 가지고 접근할 때 사용된다. 예를 들어, /.vol/234881034/105486/는 #234881034 볼륨에 있는 #105486 파일을 가르킨다.
/automount - OS X 10.1에서 네트워크 볼륨들의 "일종의 정적" 마운트 작업들을 관리하는데 사용된다. 대부분의 유닉스들에서는, 네트워크 볼륨이 클라이언트에서 정적으로 마운트될 시에, 파일 시스템의 어딘가에 올려지게 되어 일반 디렉토리처럼 보여진다. OS X 10.1에서 정적으로 마운트된 네트워크 볼륨은 실제적으로 /automount에 올려지고, 심볼릭(symbolic) 링크로 볼륨이 일반적으로 올려지는 곳을 가리키게 되면서 정상적인 볼륨처럼 보이게 된다. (이것은 아래에서 설명된 /private/Network를 통해 처리되는 네트워크 마운트 동작과 차이가 있다.)
/bin- 이 곳은 유닉스 형태의 binary들(말하자면, 프로그램들, 혹은 터미널 명령들)이 위치하고 있는 몇 가지 여러 장소들 중의 한 곳이다. /bin 속에 위치하는 프로그램들은 유닉스 터미널과 여러 shell들에서 사용되는 아주 일반적이고 기본적인 것들이다. (예. ls 그리고 rm)
이것들 외에 기타 비슷한 파일들은 /sbin, /usr/bin, /usr/sbin, 그리고 /usr/local/bin, /usr/local/sbin, 또 터미널에서 일반 /Applications 디렉토리와 비슷하게 생각될 수 있는~/bin/powerpc-apple-macos에 위치하고 있다.
/cores - (이것은 실제로 /private/cores에 위치하고 있으며, /cores는 symbolic 링크에 불과하다.)
어떤 특정한 상황에서, 만약 프로그램이 죽는다면, 프로그램이 죽었을 당시의 상태 복사본이 담긴 "core를 K아내게" 되는데 이것들이 저장되는 장소가 바로 이 곳이다. 이 곳은 단지 프로그램의 오류를 찾으려는 프로그래머들에게나 쓸모가 있다.
/div - 이 디렉토리에는 기술적으로 장비의 특수 파일들(device special files)이 위치하고 있다. 이것들은 일반적 상식의 실제 파일들은 아니고, 시스템에 붙어있는 장비들(디스크, 키보드, 모니터, 네트워크 접속 등)을 관리하기 위한 저장소와 같은 구실을 한다.
/etc - (이것은 실제로 /private/etc에 위치하고 있으며, /etc는 symbolic 링크에 불과하다.)
일반적인 유닉스 시스템에서 /etc 폴더는 설정 정보를 지정하는 문서들과 실제로 다양한 설정 작업들을 실행하는 스크립트들을 포함하는 시스템 설정 파일들이 저장되어 있다. OS X에서 이곳에 저장된 몇몇 설정 정보들은 NetInfo 혹은 기타 디렉토리 서비스들에 의해 덮어씌어지게 되지만, /etc 파일들은 계속 존재하게 된다.
/lost+found - 만약 Disk Utility 혹은 fsck가 "고아가 된" 파일들(예를 들어, 파일들은 존재하지만, 실제로 어떠한 디렉토리에도 위치하지 않은 파일들)을 발견시, 이 곳에 저장된다.
/Network - 이것은 Finder에서 컴퓨터 수준으로 보여지는 네트워크 항목의 "실제" 위치이다. 여기는 네트워크 자원들과 서버 볼륨들을 붙이기 위해 필요한 장소를 제공한다. OS X 10.1에서 네트워크 자원들은 실제로 /private/Network에 올려지는 경향이 있으며, 이것을 가리키는 symbolic 링크가 /Network에 생성된다.
OS X 10.3의 경우, 다양한 네트워크 자원들(주로 서버들)은 (약간은 가상 파일시스템의 마법 덕분에) 유동적으로 /Network에서 보여지게 된다.
/mach, /mach.sym, /mach_kernel - Mac OS X의 아주 밑바닥 핵심에서 실행되는 Mach 커널로서, 이것에 접근할 수 있는 몇 가지의 단축 방법들이 함께하고 있다.
/private - OS X에서 특정 루트 수준의 디렉토리들은 실제로 /private에 위치하는 디렉토리들을 가리키는 symbolic 링크들이다. 이러한 예에는 /cores, /etc, 그리고 /var들이 있으며, 이들은 각각 /private/cores, /private/etc, 그리고 /private/var와 연결되어 있다. /private은 또한 특정 주변 장치들의 드라이버들을 저장하고 있는 디렉토리들을 포함하고 있다.
/private/Network - OS X 10.1에서 네트워크 볼륨들의 (유동적) 네트워크 마운트들을 관리하는데 사용되었었다. 이전 버전에서는, 네트워크 마운트들은 /Network에 올려졌었으나, 10.1에 와서는 실제로 /private/Network에 올려지며, symbolic 링크가 /Network에 위치하면서 실제 마운트 포인트를 가리키게 된다.
/sbin - /sbin 디렉토리는 /bin과도 비슷하지만 시스템 관리에 사용되는 특정 바이너리들이 포함되어 있다는 것이 차이점이다. (예, mount 그리고 fsck)
/tmp - (이것은 실제로 /private/tmp에 위치하고 있으며, /tmp는 symbolic 링크에 불과하다.)
하드 디스크의 임시 공간이 필요로한 프로그램들은 /tmp 디렉토리에 임시 파일들을 쓰게 된다. (간혹 /var/tmp가 대신 사용되기도 함.)
/usr - /usr 디렉토리에는 특정 일반 유닉스 사용자가 사용하는 바이너리들과 파일들이 저장되어 있는 많은 서브디렉토리들을 포함하고 있다.
/usr/bin - 유닉스 바이너리들이 저장되어 있는 또 다른 장소.
/usr/lib - Mac OS X에서 프로그램을 짜는데 사용되는 라이브러리들. Developer Tools를 설치하지 않았다면, 대부분은 비어있게 된다. Mac OS X의 다양한 "Library" 디렉토리들과는 아무런 관계가 없다.
/usr/libexec - 다양한 디몬(daemon) 프로그램들, 시스템 유지보수 스크립트들, 그리고 기타 유닉스 형태의 보통 사람이 직접 실행하지 않는 프로그램들이 위치하는 곳.
/usr/local - 보통 대부분의 유닉스들에선, 이 디렉토리에 일반 OS 설치에 추가되는 맞춤형 파일들이나 추가 파일들이 저장된다. (예. /usr/local/bin에는 시스템 관리자에 의해 추가된 유닉스 바이너리들이 설치된다.) 이 디렉토리는 유닉스 격의 Mac OS X 로컬 라이브러리와도 비슷하게 생각될 수 있다. 기본 Mac OS X 설치시에 이 곳은 당연히 완전하게 비어있다.
주의: OS X 10.2에서는, 이 곳 디렉토리들이 더 이상 터미널 실행 파일들을 위한 검색 경로로 포함되어 있지 않다. 결과적으로, 이 곳에 설치되어 있는 것들은 추가적인 조치를 해주지 않는 이상 사용될 수가 없다.
/usr/sbin - 유닉스 바이너리들이 저장되어 있는 또 다른 장소.
/usr/share - 기본적으로 여러 시스템 구조들에서 공통적으로 사용될 수 있는 여러 데이타들과 텍스트 파일들이 포함되어 있다. (이 디렉토리가 가지는 차별성은 Mac OS X 말고 서로 다른 구조와 형태들을 갖는 유닉스들에서 더 적절하게 이해될 수 있을 것이다.)
/usr/standalone - (잠재적으로) 다양한 컴퓨터 형태들을 위한 부트 로더(boot loader) 프로그램들이 저장된 곳. 내가 살표본 바로는, 이것은 단지 System/Library/CoreServices/BootX 디렉토리에 있는 BootX loader의 복사본에 지나지 않지만, 왜 두 개의 복사본이 필요한지는 이유를 알 수 없다.
/var - (이것은 실제로 /private/var에 위치하고 있으며, /var는 symbolic 링크에 불과하다.)
가끔 OS에 의해 조종되는 작업들은 변수 파일들을 저장할 장소가 필요하게 된다. 인쇄 작업이나 로그 파일들을 저장하는 프로그램들은 /var 디렉토리 아래에 위치하는 하부 디렉토리에 이런 파일들을 저장하게 된다. 또한 이 곳에는 (특히 /var/db의 경우에) 많은 양의 설정 관련 정보들을 저장하고 있다.
/var/backups - 중요한 시스템 정보들의 백업들을 저장하는데 사용된다. (주로, 매일 밤 저장되는 NetInfo 데이타베이스들)
/var/db - 시스템 정보에 관란 다양한 데이타베이스들이 저장된 곳. 가장 대표적인 것은 /var/db/netinfo에 저장된 NetInfo 데이타베이스들과 시스템의 네트워크 설정 데이타베이스(/var/db/SystemConfiguration/preferences.xml - 10.3에 와서는 /Library/Preferences/SystemConfiguration/으로 옮겨졌다.)가 있는데 대부분은 시스템과 네트워크 설정 정보가 저장되어 있으며, 전통적인 유닉스 관점에서는 /etc 디렉토리에서 찾을 수 있는 파일들이다.
/var/log - 이 곳에는 많은 시스템 이벤트들의 로그 파일들이 저장되어 있는 곳으로 기타 다른 로그 파일들은 /Library/Logs/ 디렉토리에도 위치한다.
/var/root - 루트(root 혹은 superuser) 계정의 홈(Home) 디렉토리. 주의할 것은 비록 루트 계정을 활성화 하지 않았더라도 존재하게 된다.
/var/run - 시스템에서 실행되고 있는 작업들(특히 daemon들)에 관한 다양한 상태 정보가 저장되어 있는 곳.
/var/tmp - /tmp와 같이 프로그램들이 임시 데이타를 저장하는 곳. 어떤 프로그램들은 이 곳을 사용하고, 또 어떤 것은 다른 곳을 사용하기 때문에 Mac OS X에서는 두 곳 모두를 제공하고 있다.
/var/vm - Mac OS X의 가상 메모리를 위한 바꿔치기(swap) 파일들이 저장되는 곳.
/var/vm/app_profile - 다양한 어플리케이션들의 가상 메로리 사용 현황에 관한 정보가 있는 곳.
/Volumes - /Volumes 디렉토리는 시스템에 접속되어 있는 (시동 볼륨을 제외한) 모든 장비들의 마운트 포인트(mount point)가 된다. Finder에서는 Volumes 디렉토리 자체는 숨기지만, 그 내용물은 컴퓨터에서 보여지게 된다.
왜 7 개나 되는 바이너리 디렉토리들이 필요한가?
Mac OS X의 터미널에서 명령어를 치면, 적당한 프로그램을 돌리기 위해 모두 7 군데의 디렉토리를 찾게 됩니다. 왜 이리 많냐고 생각하실겁니다. 글쎄요, 설명하자면 이들은 몇 가지의 서로 다른 특성들에 의해 구분되어져 있고, 또한 이런 특성들은 더 많은 조합들의 가능성을 가지고 있기 때문에, 결국은 다양한 서로 다른 구분들에 의해 프로그램들이 나뉘어지게 되었습니다. 여기에는 비교적 일정한 형식으로 구분될 수 있는 6 개의 디렉토리들이 있으며, 나머지 하나는 어떻게 잘 구분될 수도 없는 것이 있습니다. 먼저 처음의 6 가지의 디렉토리들에 대해 이야기해 보겠습니다.
첫 번째 구별법: "bin"과 "sbin". 이 6 개의 일정한 디렉토리들은 "bin"과 "sbin"의 이름들이 서로 쌍으로 존재하고 있다. "bin" 버전에는 일반적으로 사용되는 프로그램들이 포함되어 있으며, "sbin" 버전에는 통상 시스템 관리를 목적으로 하는 프로그램들이 포함되어 있다. 이것의 구별은 어쩌면 제멋대로일 수도 있으며 (예를 들어, IP ping 도구는 sbin 디렉토리에 있지만, 이것의 AppleTalk 버전은 bin 디렉토리에 위치한다), sbin에 위치한 프로그램들은 (비록 몇몇은 관리자 혹은 root 권한이 아니면 실행되지 않을 수도 있지만) 모든 사용자들에게 접근 가능하다.
두 번째 구별법: / 와 /usr/ 그리고 /usr/local/. 이들 각각의 디렉토리들은 bin과 sbin의 하부 디렉토리들을 포함하고 있다. 대부분의 프로그램들은 /usr/ 버전에 위치하고 있으며, 몇몇의 더 중대한 핵심 프로그램들(특히 시동 작업에 필요한 것들)은 대신 / 디렉토리들에 위치한다. 이러한 이유는, /usr 디렉토리를 네트워크의 매 컴퓨터들마다 독자적인 복사본을 저장해 둘 필요없이 파일 서버에 보관할 수도 있기 때문이다. 그래서, 클라이언트 컴퓨터가 /usr 디렉토리에 접근할 필요 없이도 서버에 접속해서 접근 가능할 수가 있게 되며, 절대적으로 필요한 프로그램들은 언제나 사용 가능한 /bin 혹은 /sbin에 위치해야 한다. 마지막으로, 컴퓨터에서 직접 설치한(에를 들어, Apple에 의한 일반 시스템 설치가 아닌 시스템 관리자에 의해 설치된) 프로그램들은 /usr/local/에 위치하게 된다. 그래서 만약 표준 OS X 시스템에선, /usr/local 디렉토리가 완전하게 비어있는 것을 확인할 수가 있다.
주의: 10.2에서는, /usr/local/bin과 /usr/local/sbin 디렉토리는 터미널의 기본 검색 경로에서 제외되어 있어서, 기본적으로는 별 쓸모가 없게 되었다.
마지막으로, bin/sbin 쌍을 이루는 형식에도 맞지 않는 독특한 성질의 디렉토리가 있는데, 그것은 바로 ~/bin/powerpc-apple-macos라는 이름을 가진 (이제는 존재하지 않는) 사용자의 개별 bin 디렉토리입니다. 왜 이런 이상한 이름을 가졌냐구요? 원래는, 만약 홈 디렉토리가 네트워크 상에서 몇몇의 서로 다른 구조의 컴퓨터들(Linux, Solaris...)과 공유되어 있을 경우를 대비해서 존재하고 있습니다. 일반적으로 사용하고자 하는 어떤 한 바이너리 프로그램은 서로 다른 구조의 컴퓨터들에서는 작동하지 않을 수도 있기 때문에, 어떠한 특정 컴퓨터를 사용하느냐에 따라 또 다른 바이너리들 준비해 두고 싶을 때가 있을 것입니다. 그 때 이 디렉토리가 사용되는데, 10.1에 와서는 기본 검색 경로에서 삭제되었기 때문에, 지금은 단지 과거 기록으로서만 남아있습니다.
숨겨둔 이유들
Mac OS X는 Finder에서 파일과 폴더를 감추는데 세 가지의 방법이 사용됩니다. - 예전의 Mac OS 시스템들에서는 "안보이는" 파일 속성이 있었고, 유닉스 시스템들에서 사용되는 것 처럼 파일 이름이 "."로 시작되거나, 혹은 파일이 /.hidden file의 목록에 포함되어 있을 수 있습니다. 위에서 설명된 많은 파일들과 디렉토리들은 실제로 여러가지 방법들로 감추어져 있습니다. (예를 들어, /bin은 /.hidden 목록에 포함되어 있으며, 또한 안보이는 속성을 가지고 있습니다.)
주의할 것은 OS X는 오로지 시동 볼륨의 .hidden 파일들만 인식을해서, 만약 다른 디스크에서 시동을 하게 되면, 정상적으로는 보이지 않았던 파일들이 갑자기 나타나게 됩니다. 또한, Mac OS 9과 같은 예전 버전들에서는 안보이는 파일 속성만을 인식하기 때문에, Mac OS 9으로 시동하면 더 많은 파일들(주로 /.vol, /mach, /mach.sym, 그리고 몇몇 .DS_Store)이 보여지게 됩니다.