it-swarm-ko.tech

'ls -l'명령의 출력에서 ​​디렉토리의 크기는 무엇을 의미합니까?

ls -l 명령의 출력에서 ​​디렉토리의 크기는 무엇을 의미합니까?

67
Hemant

디렉토리의 메타 정보를 저장하는 데 사용되는 디스크의 공간 크기입니다 (예 :이 디렉토리에 속하는 파일 테이블). 즉 1024 인 경우 디스크의 1024 바이트 가이 목적으로 사용됩니다 (항상 전체 블록을 할당 함).

46
txwikinger

ls -l로 인쇄 된 "디렉토리 크기"는 (모든 파일 유형과 마찬가지로) statbuf.st_sizestat() 호출에 의해보고 된 값입니다.

st_size의 의미는 파일 시스템 유형에 따라 다릅니다. 파일 시스템 유형을 알고 그 개념을 이해하지 않으면 st_size의 값에서 아무것도 추론 할 수 없습니다.

  • 현재 일반적으로 이름이 v7-fs 인 역사적인 UNIX 파일 시스템에서 디렉토리는 16 비트 inode 번호와 14 바이트의 파일 이름을 포함하는 16 바이트 항목으로 반복되었습니다. 디렉토리의 "크기"는 read(2) 작업과 관련하여 의미가 있었고 항상있는 그대로 커지거나 유지되었습니다. ... 항목은 현재 및 디렉토리에 대해 레벨을 수동으로 하드 링크하여 작성됩니다. 제정신 빈 처녀 디렉토리의 링크 수는 2입니다.

  • 1989 년 이후 (SVr4) ufs라는 BSD-4.2 파일 시스템에서 디렉토리는 안정적인 것으로 부여되지 않은 형식을 사용하는 일련의 가변 길이 레코드이므로 사용자 공간 명령을 읽을 수 없습니다. 이 형식. 보고 된 "size"는 v7-fs에서와 같이 바이트 단위의 크기이며, 일반적으로 크기가 커지거나 그대로 유지되지만, 최신 버전의 파일 시스템은 일부 조건에서 크기를 줄일 수 있지만 항상 그런 것은 아닙니다. 빈 디렉토리에 대해보고 된 링크 수는 v7-fs와 같이 2입니다.

  • 1988 년 여름과 1991 년 5 월 사이에 내가 설계하고 구현 한 파일 시스템 인 WOFS에서 디렉토리는 항상 "size"0을보고하며 read(2) 호출을 사용하여 읽을 수있는 내용 유형을 갖지 않습니다. . 이는 WOFS이 첫 번째 Copy-on-Write 파일 시스템이고 WOFS 파일에서 디렉토리에 나열되는 대신 해당 디렉토리를보고하기 때문입니다. readdir()을 사용하여 WOFS 디렉토리를 읽는 경우 의도 한 항목에 대한 데이터 만 가져 오지만 ...에 대한 데이터는 가져 오지 않습니다. WOFS에서 빈 디렉토리의 링크 수는 1이며 전체 동작은 POSIX를 완벽하게 준수합니다.

  • ZFS에서는 WOFS 논문을 읽은 후에 구현되었습니다. ZFS는 COW (Copy-On-Write) 파일 시스템이며 작성자는 WOFS에서 개념을 복사했음을 거부하지 않습니다. ZFS의 디렉토리는 number of directory entries에서 st_size를보고하므로보고 된 "크기"는 디렉토리 데이터에서 차지하는 디스크 공간과 관련하여 실제로 의미가 없습니다. ZFS 디렉토리에는 ... 항목이 없지만 readdir()을 호출하면 이러한 항목이 위조되어 처음 두 작업에 대해 반환됩니다. ZFS는 디렉토리에서 하드 링크를 지원하지 않는 유일한 FS 목록이지만 디렉토리에 대해보고 된 링크 수는 항상 2입니다. ZFS의 이러한 두 가지 불규칙은 POSIX 역사적 프로그램.

  • ZFS와 마찬가지로 WAFL은 WOFS의 아이디어 중 일부만 복사합니다. Netapp의 WAFLWOFS 논문이 출판 된 후 3 년이 지난 후 WAFL은 기록 중이지만 WAFL은 "실제 디렉토리 크기"인 "크기"값을보고하는 것으로 보입니다. 디렉토리에 내용이 있다고 가정합니다.

14
schily

디렉토리는 자신과 그 내용에 대한 메타 데이터를 위해 4096 바이트 (최소)를 예약합니다.

또한 ext2/ext3/ext4 파일 시스템의 기본 할당 단위 (블록)는 4096 바이트이므로 디렉토리는 더 작을 수 없습니다.

다른 파일 시스템에서는 기본 크기가 다른 디렉토리, 즉 파일 시스템의 기본 블록 크기로 인해 디렉토리를 찾을 수 있습니다.

디렉토리 크기는 채워질 때 동적으로 커질 수 있지만 일단 채워지면 메타 데이터 용으로 예약 된 공간을 디렉토리를 제거하지 않고 다시 할당 할 수 없습니다.

13
h3rrmiller

디렉토리는 전화 디렉토리와 같은 디렉토리입니다. 숫자 목록과 그 옆에 이름이있는 파일 일뿐입니다. 각 번호는 파일 시스템의 파일 (아이 노드 번호)을 참조하며 이름은 파일 이름입니다.

해당 데이터를 저장하려면 디스크 공간이 필요합니다. 데이터가 할당 및 증가하는 방식과 파일 시스템은 파일 시스템에 따라 다릅니다.

4
Stéphane Chazelas