파일 시스템에 파일 이름이 어디에 저장되어 있습니까?


43

파일 시스템에 파일 이름이 어디에 저장되어 있습니까?

두 파일 이름이 동일한 inode를 가리킬 수있는 하드 링크가 있기 때문에 inode 또는 실제 파일 내용이 아닙니다.


4
엄밀히에 전적으로 의존하는, 말하자면 어떤 얘기하는 특정 파일 시스템. 그들 모두가 inode (또는 디렉토리)를 가지고있는 것은 아닙니다.
Michael Borgwardt 2014

NTFS 또는 FAT12 / 16 / 32 및 기타 많은 파일 시스템에는 inode가 없습니다
phuclv

많은 파일이 둘 이상의 디렉토리에 하나 이상의 이름을 가지고 있습니다. directory 유형의 모든 파일에는 최소한 2 개의 이름이 .있으며 그 중 하나는 그 자체입니다.
Stéphane Chazelas

@ LưuVĩnhPhúc, ntfs는 .. MFT 레코드라고 부르지 만 거의 inode입니다.
psusi

답변:


60

적절한 사본을 찾지 못해 귀하의 질문에 대한 답변입니다.

파일 이름 및 디렉토리

발췌

파일 이름 및 디렉토리 의미 :

  • inode는 파일 이름을 포함하지 않으며 다른 파일 메타 데이터 만 포함합니다.
  • Unix 디렉토리는 하나의 파일 이름과 하나의 inode 번호를 포함하는 연관 구조의 목록입니다.
  • 파일 시스템 드라이버는 특정 파일 이름을 찾는 디렉토리를 검색 한 다음 파일 이름을 해당하는 inode 번호로 변환해야합니다.

출처 : Inode의 Wikipedia 페이지

따라서 파일 이름은 디렉토리의 정보 구조 내에 저장됩니다. 예를 들면 다음과 같습니다.

                         fs의 ss

디렉토리의 구조

발췌

EXT2 파일 시스템에서 디렉토리는 파일 시스템의 파일에 대한 액세스 경로를 작성하고 보유하는 데 사용되는 특수 파일입니다. 그림 9.3은 메모리에서 디렉토리 엔트리의 레이아웃을 보여줍니다.

디렉토리 파일은 디렉토리 항목 목록이며 각 항목에는 다음 정보가 포함됩니다.

  • inode- 이 디렉토리 엔트리의 inode 이것은 블록 그룹의 Inode 테이블에 보관 된 inode 배열에 대한 인덱스입니다. 그림 9.3에서 file이라는 파일의 디렉토리 항목에는 inode 번호 i1에 대한 참조가 있습니다.
  • name length- 이 디렉토리 항목의 길이 (바이트)
  • name- 이 디렉토리 엔트리의 이름

모든 디렉토리의 처음 두 항목은 항상 "이 디렉토리"및 "상위 디렉토리"를 각각 의미 하는 표준 ...항목입니다.

위 의 그림 9.3 참조 는 다음과 같습니다 .

                 ss # 2

출처 : 리눅스 문서 프로젝트 : 파일 시스템

참고 문헌


9

파일 이름은 해당 디렉토리 ( "디렉토리 파일")에 저장됩니다. 이 항목은 inode를 가리 킵니다.


1
symlink 대상이 디렉토리 항목에서 어떻게 종료 될 수 있는지 알 수 없습니다. 심볼릭 링크 대상은 심볼릭 링크의 inode에서 찾을 수 있지만 심볼릭 링크가 연결된 디렉토리 항목에는 해당되지 않습니다.
Stéphane Chazelas

@ StéphaneChazelas, symlink 자체에는 단순히 열려야하는 다른 이름이 포함되어 있습니다. 이름 조회는 새 이름에서 다시 시작되며,이 이름은 (존재하는 경우) 디렉토리 항목입니다.
psusi

1

파일 이름은 "(string) filename"및 해당 "(int) inode"가있는 "directory"데이터 구조에 저장됩니다. 디렉토리는 filename-> inode 매핑을 담당합니다. 그리고 ode에서 디스크의 inode-> 섹터를 매핑합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.