폴더 크기 du, ls [중복]

폴더 크기 du, ls [중복]

폴더 크기를 설명해 줄 수 있는 사람이 있나요? 폴더에는 360GB 크기의 파일이 1개만 포함되어 있습니다. ls 및 du에서는 440Gb가 사용되었음을 표시합니다.

[root@liz DECSC]# ls -lha
total 440G
drwxrwxr-x  2 geo geo  4.0K Dec  6 19:56 .
drwxrwxr-x 14 geo geo  20K  Dec  6 19:39 ..
-rwxrwxrwx  1 geo geo  360G Apr  8 2018 vor_gainzp2.dat
[root@liz DECSC]# du -hs
440G    .
[root@liz DECSC]# 

답변1

이는 ext3과 같은 확장이 아닌 직접 블록 할당을 사용하는 파일 시스템에 있는 것처럼 들립니다.

이는 각 데이터 블록이 테이블(인덱스 노드)에 항목을 가지고 있음을 의미합니다. 처음 12개 항목은 직접 블록입니다. 즉, 데이터 블록을 직접 가리킵니다. 다음 항목은 블록 번호도 포함하는 블록을 가리키는 간접 블록입니다. 블록 13은 이중 간접 블록이고 블록 14는 삼중 간접 블록입니다.

이는 대용량 파일(예: 370GB 파일)의 경우 모든 데이터 블록을 주소 지정하려면 많은 수의 블록이 필요하다는 것을 의미합니다. 이것이 차이점을 du고려 하는 곳일 수 있습니다.모두단순한 데이터 블록이 아닌 블록. ls파일 크기를 표시하지만 데이터 블록뿐만 아니라 디렉터리의 전체 공간과 사용된 모든 공간을 다시 표시합니다.

더 큰 파일의 경우 ext3을 사용하지 않는 것이 좋으며 ext2도 권장하지 않습니다. ext4와 같은 최신 범위 기반 파일 시스템을 사용합니다. 익스텐트 기반 파일 시스템의 경우 블록은 "342개 블록으로 확장되는 3874의 첫 번째 블록"으로 인덱싱되며 필요에 따라 더 많은 익스텐트가 추가됩니다. 이렇게 하면 두 개의 숫자만 사용하여 많은 블록을 찾을 수 있습니다. 이는 공간 효율적일 뿐만 아니라 모든 추가 청크를 로드할 필요가 없기 때문에 훨씬 더 빠릅니다.

관련 정보