다음에 대한 설명을 찾고 있습니다.
- 소프트 링크와 하드 링크를 생성하면 Linux에서 어떤 일이 발생합니까?
- 액세스 방법
- 심볼릭 링크에 항상 777 권한이 표시되는 이유는 무엇입니까?
답변1
Unix에서 파일(또는 모든 파일 시스템 객체)은 inode(간접 노드)로 표시됩니다. 파일에 대한 모든 정보(크기, 타임스탬프, 권한)는 inode에 저장되며 디렉터리는 본질적으로 inode에 매핑된 이름을 가진 파일입니다. inode는 동일한 디렉토리에서 다른 이름으로 또는 다른 디렉토리에서 여러 번 언급될 수 있습니다. 각 파일은 정확히 동일한 파일이며 기본 파일과 보조 파일이 없습니다. inode의 데이터 중 하나는 링크 수입니다. 파일을 삭제하면 단순히 디렉토리의 이름이 삭제되고 링크 수가 줄어듭니다. 개수가 0이 되면 파일을 더 이상 찾을 수 없으며 파기될 수 있습니다. 파일에 대한 각 언급은하드 링크.
심볼릭 링크는 기본적으로 파일 이름이 포함된 특수 파일입니다. 심볼릭 링크를 따를 때마다 포함된 파일 이름을 읽고 파일을 정상적으로 조회합니다. 기호 링크의 대상이 삭제되었을 수 있으며 해당 링크를 수정하기 위해 해당 링크가 어디에 있는지 알 수 있는 방법이 없습니다. 결과적으로 링크가 끊어졌습니다.
심볼릭 링크에 대한 권한은 전혀 관련이 없으며, 관련된 것은 대상 경로에 대한 권한입니다. 관례적으로 심볼릭 링크에는 0777(8진수) 권한이 있습니다.
몇 가지 제한 사항이 있습니다. 하드 링크는 동일한 파일 시스템 내의 파일에만 추가할 수 있으며(inode는 로컬로만 알려짐) 디렉터리를 참조할 수 없습니다( .
및 ..
항목 제외). 마지막으로 루프를 피하는 것입니다. 루프를 수행하려면 항목을 삭제할 수 있는지 확인하기 위해 값비싼 가비지 수집이 필요합니다.
기호 링크는 파일 시스템에 걸쳐 디렉토리를 가리킬 수 있습니다. 그러나 가리키는 경로의 권한에 따라 제한되며 깨질 수 있습니다.