'ln'및 'rm'명령은 1970 년대 초부터 모든 UNIX 파일 시스템에서 이와 동일하게 작동했습니다. Mac OSX, BSD 및 Linux는 모두이 독창적 인 디자인을 상속합니다.
UNIX 파일 자체에는 이름이 없으며 inode 번호 또는 inum 만 있습니다. 그러나 이름을 해당 inum과 연결하는 특수한 "디렉토리"파일의 항목을 통해서만 액세스 할 수 있습니다. inum을 직접 지정할 수 없습니다.
디렉토리 자체 는 파일이므로 액세스해야합니다. 을 에 "경로 이름"로 알려진 슬래시로 구분 된 디렉토리 이름 (/)의 시리즈를 통해, 등등 (다른) 디렉토리를 통해합니다. 이름이 "/"로 시작하지 않으면 프로세스의 "현재 작업 디렉토리"에서 경로가 시작됩니다.이 경우 파일 시스템 루트 디렉토리로 시작합니다. 예를 들어, 경로 이름에 "/"문자가 포함되어 있지 않으면 현재 디렉토리의 항목 일 것으로 예상됩니다.
비 디렉토리 파일은 "하드 링크"로 알려진 경로 이름의 수에는 제한이 없습니다, 그리고 때까지 계속해서 존재 하는 모든 해당 경로 이름이 제거 된 그리고 마지막 프로세스가 파일을 폐쇄했다. 그런 다음 파일이 실제로 삭제되고 해당 공간이 재사용 가능한 것으로 표시됩니다. 즉, 단일 링크 된 파일을 creat () 또는 open () 한 다음 unlink ()하여 파일 시스템 이름 공간에 더 이상 표시되지 않지만 파일을 닫을 때까지 파일은 계속 존재합니다. 다른 프로그램에서 읽을 수없는 임시 스크래치 파일에 유용합니다.
디렉토리에는 inode 번호가 있지만 대부분의 파일 시스템은 하드 링크를 허용하지 않습니다. 하나의 다른 디렉토리에만 나타날 수 있습니다. (Mac OSX HFS + 파일 시스템은 예외입니다. Time Machine 백업이 가능합니다.) 디렉토리 (또는 다른 파일)에 대한 "소프트 링크"를 만들 수 있습니다. 소프트 링크는 inum이 아닌 다른 경로 이름을 포함한다는 점을 제외하고 디렉토리 항목과 유사합니다.
모든 UNIX 파일에는 소유자, 그룹 및 액세스 권한이 있습니다. 파일을 열 수 있도록하는 것이 필요하지만 충분하지 않습니다. 또한 경로 이름을 참조하는 데 사용하는 모든 디렉토리에 대해 최소한 실행 권한이 있어야합니다. 따라서 inode 번호로 UNIX 파일을 여는 표준 방법이없는 이유입니다. 중요하고 널리 사용되는 보안 메커니즘을 우회합니다.
그러나 권한 검사가 무시되므로 루트 (권한이있는) 사용자가 inode 번호로 파일을 여는 표준 방법이없는 이유를 설명하지 않습니다 . 이것은 백업과 같은 특정 시스템 관리 기능에 매우 유용합니다. 내가 아는 한, 그러한 메커니즘은 존재하지만 모두 파일 시스템에 따라 다릅니다. UNIX 파일 시스템에 대해 일반적인 방법은 없습니다.