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

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

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

답변1

이는 디렉터리 메타정보(즉, 디렉터리에 속한 파일 테이블)를 저장하는 데 사용되는 디스크 공간의 양입니다. 1024이면 디스크의 1024바이트가 이 목적으로 사용된다는 의미입니다(항상 전체 블록을 할당함).

답변2

인쇄된 "디렉터리 크기"(모든 파일 형식과 마찬가지로)는 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디렉토리는 안정적이지 않은 형식을 사용하는 가변 길이 레코드의 시퀀스이므로 사용자 공간 명령은 이 형식을 읽을 수 없습니다. 보고된 "크기"는 v7-fs의 바이트 단위 크기입니다. 크기는 일반적으로 커지거나 동일하게 유지되지만 최신 버전의 파일 시스템에서는 경우에 따라 크기가 줄어들 수 있지만 항상 예상했던 크기는 아닙니다. . 와 마찬가지로 빈 디렉토리는 링크 수를 2로 보고합니다 v7-fs.

  • 1988년 여름부터 1991년 5월 사이에 내가 설계하고 구현한 파일 시스템 에서 WOFS디렉터리는 항상 "크기" 0을 보고했으며 read 라고 할 수 있는 콘텐츠 유형이 전혀 없었습니다 read(2). 이는 이것이 WOFS최초의 기록 중 복사 파일 시스템이고 WOFS파일이 디렉터리에 나열되지 않고 해당 디렉터리에 보고되기 때문입니다. WOFS읽기 디렉토리를 사용하는 경우 합계 readdir()가 아닌 예상 항목에 대한 데이터만 가져옵니다 . 빈 디렉토리의 링크 수 는 1이고 전체 동작은 POSIX와 완전히 호환됩니다....WOFS

  • 에서는 논문을 읽은 후 ZFS이를 구현했습니다 . 는 쓰기 시 복사 파일 시스템이며 작성자는 .ZFS 의 디렉터리 에서 보고한다는 사실을 부인하지 않습니다 . 따라서 보고된 "크기"는 디렉터리 데이터가 차지하는 디스크 공간에 대한 실제 의미가 없습니다. ZFS 디렉토리에는 및 항목이 없지만 호출하면 이러한 항목이 위조되어 처음 두 작업에 반환됩니다. ZFS는 목록에서 하드 링크된 디렉터리를 지원하지 않는 유일한 FS이지만 보고된 디렉터리 링크 수는 항상 2입니다. ZFS의 이러한 두 가지 불규칙성은 POSIX가 아닌 기록 프로그램의 혼란을 줄이기 위해 구현되었습니다.WOFSZFSWOFSnumber of directory entriesst_size...readdir()

  • ZFS와 마찬가지로 WAFL은 논문이 출판된 지 3년 후에 작성 WOFS되었으며 WAFL은 쓰기 시 복제되지만 WAFL이 보고하는 "크기" 값은 디렉토리에 콘텐츠가 있다고 가정할 때 "실제 디렉토리 크기"일 수 있습니다.WAFLWOFS

답변3

디렉토리는 자체 및 해당 내용에 대한 메타데이터를 위해 최소 4096바이트를 예약합니다.

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

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

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

답변4

디렉토리는 전화번호부와 같은 단순한 디렉토리입니다. 이는 숫자 목록과 숫자 옆에 이름이 포함된 파일일 뿐입니다. 각 숫자는 파일 시스템의 파일(아이노드 번호)을 나타내며, 이름은 파일 이름이다.

이 데이터를 보관하려면 디스크 공간이 필요하며, 할당, 증가 및 축소 방식은 파일 시스템에 따라 다릅니다.

관련 정보