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

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



답변

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


답변

로 인쇄 된 “디렉토리의 크기” ls -lstat()호출에서 보고 한 값입니다 (파일 형식과 동일) 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.

  • 에서 WOFS1988 년 여름에서 1991 년 5 월 사이에 설계 및 구현 한 파일 시스템에서 디렉토리는 항상 “size”0을보고하며 read(2)호출을 통해 읽을 수있는 컨텐츠 유형은 절대로 없습니다 . 이것은 WOFS최초 쓰기-쓰기 (Write-on-Write) 파일 시스템이고 WOFS파일에서 디렉토리를보고하지 않고 파일을보고 하기 때문입니다 . 을 WOFS사용하여 디렉토리를 읽으면 readdir()의도 한 항목에 대한 데이터 만 얻을 수 있지만 .and는 사용할 수 없습니다 ... 비어있는 디렉토리의 링크 수 WOFS는 1이며 전체 동작은 POSIX와 완벽하게 호환됩니다.

  • 에서 ZFS, 그것은 WOFS신문 을 읽은 후에 구현되었습니다 . ZFScopy-on-write 파일 시스템이며 작성자는에서 개념을 복사 한 것을 거부하지 않습니다 WOFS. ZFS의 디렉토리는 number of directory entriesin을 st_size보고하므로보고 된 “크기”는 디렉토리 데이터에서 차지하는 디스크 공간과 관련하여 실제로 의미가 없습니다. 아무 없습니다 ...항목은 ZFS 디렉토리에,하지만 당신은 호출하는 경우 readdir(),이 항목은 위조와 처음 두 작업에 반환됩니다. ZFS는 목록에서 디렉토리를 하드 링크하는 것을 지원하지 않는 유일한 FS이지만 디렉토리에 대해보고 된 링크 수는 항상 2입니다.

  • ZFS와 마찬가지로 WAFL은의 모든 아이디어를 복사하지만 일부 아이디어는 복사하지 않습니다 WOFS. Netapp WAFLWOFS논문이 출판 된 지 3 년이 지난 후 WAFL은 기록 중 복사이지만 WAFL은 디렉토리에 내용이 있다고 가정 할 때 “실제 디렉토리 크기”일 수있는 “크기”값을보고하는 것 같습니다.


답변

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

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

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

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


답변

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

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