답변:
디렉토리의 메타 정보 (예 :이 디렉토리에 속하는 파일 테이블)를 저장하는 데 사용되는 디스크 공간의 크기입니다. 즉, 1024이면 디스크의 1024 바이트가이 목적으로 사용됩니다 (항상 전체 블록을 할당 함).
로 인쇄 된 "디렉토리의 크기" ls -l
는 stat()
호출에서 보고 한 값입니다 (파일 형식과 동일) statbuf.st_size
.
이것이 st_size
디렉토리에 의미하는 것은 파일 시스템 유형에 따라 다릅니다. 파일 시스템 유형을 알고 그 개념을 이해하지 않으면의 값에서 아무것도 추론 할 수 없습니다 st_size
.
현재 일반적으로 이름이 지정된 역사적인 UNIX 파일 시스템 v7-fs
에서 디렉토리에는 16 비트 inode 번호와 14 바이트의 파일 이름이 포함 된 16 바이트 항목이 반복되었습니다. 디렉토리의 "크기"는 read(2)
작업과 관련하여 의미가 있었고 항상있는 그대로 커지거나 유지되었습니다. .
및 ..
항목은 수동으로 현재 수준 위의 디렉토리에 그들을 하드 연결하여 만들어집니다. 제정신 빈 처녀 디렉토리의 링크 수는 2입니다.
1989 년 이후 (SVr4)가 호출 된 BSD-4.2 파일 시스템 ufs
에서 디렉토리는 안정적으로 부여되지 않은 형식을 사용하는 일련의 가변 길이 레코드이므로 사용자 공간 명령은이 형식을 읽을 수 없습니다. 보고 된 "size"는 v7-fs에서와 같이 바이트 단위의 크기이며, 크기는 보통 그대로 커지거나 유지되지만, 일부 상황에서는 최신 버전의 파일 시스템에서 크기가 줄어들 수 있지만 항상 그렇지는 않습니다. 빈 디렉토리에 대해보고 된 링크 수는와 같이 2입니다 v7-fs
.
에서 WOFS
1988 년 여름에서 1991 년 5 월 사이에 설계 및 구현 한 파일 시스템에서 디렉토리는 항상 "size"0을보고하며 read(2)
호출을 통해 읽을 수있는 컨텐츠 유형은 절대로 없습니다 . 이것은 WOFS
최초 쓰기-쓰기 (Write-on-Write) 파일 시스템이고 WOFS
파일에서 디렉토리를보고하지 않고 파일을보고 하기 때문입니다 . 을 WOFS
사용하여 디렉토리를 읽으면 readdir()
의도 한 항목에 대한 데이터 만 얻을 수 있지만 .
and는 사용할 수 없습니다 ..
. 비어있는 디렉토리의 링크 수 WOFS
는 1이며 전체 동작은 POSIX와 완벽하게 호환됩니다.
에서 ZFS
, 그것은 WOFS
신문 을 읽은 후에 구현되었습니다 . ZFS
copy-on-write 파일 시스템이며 작성자는에서 개념을 복사 한 것을 거부하지 않습니다 WOFS
. ZFS의 디렉토리는 number of directory entries
in을 st_size
보고하므로보고 된 "크기"는 디렉토리 데이터에서 차지하는 디스크 공간과 관련하여 실제로 의미가 없습니다. 아무 없습니다 .
및 ..
항목은 ZFS 디렉토리에,하지만 당신은 호출하는 경우 readdir()
,이 항목은 위조와 처음 두 작업에 반환됩니다. ZFS는 목록에서 디렉토리를 하드 링크하는 것을 지원하지 않는 유일한 FS이지만 디렉토리에 대해보고 된 링크 수는 항상 2입니다.
ZFS와 마찬가지로 WAFL은의 모든 아이디어를 복사하지만 일부 아이디어는 복사하지 않습니다 WOFS
. Netapp WAFL
은 WOFS
논문이 출판 된 지 3 년이 지난 후 WAFL은 기록 중 복사이지만 WAFL은 디렉토리에 내용이 있다고 가정 할 때 "실제 디렉토리 크기"일 수있는 "크기"값을보고하는 것 같습니다.
디렉토리는 자신과 그 내용에 대한 메타 데이터를 위해 4096 바이트 (최소)를 예약합니다.
또한 ext2 / ext3 / ext4 파일 시스템의 기본 할당 단위 (블록)는 4096 바이트이므로 디렉토리는 더 작을 수 없습니다.
다른 파일 시스템에서는 기본 크기가 다른 디렉토리, 즉 파일 시스템의 기본 블록 크기로 인해 디렉토리를 찾을 수 있습니다.
디렉토리 크기는 채워질 때 동적으로 커질 수 있지만 일단 채워지면 메타 데이터 용으로 예약 된 공간을 디렉토리를 제거하지 않고 다시 할당 할 수 없습니다.
디렉토리는 전화 디렉토리와 같은 디렉토리입니다. 숫자 목록과 그 옆에 이름이있는 파일 일뿐입니다. 각 번호는 파일 시스템의 파일 (아이 노드 번호)을 참조하며 이름은 파일 이름입니다.
해당 데이터를 저장하려면 디스크 공간이 필요하며, 데이터가 할당 및 증가하는 방식과 파일 시스템에 따라 줄어 듭니다.