나는 리눅스에서 명령 ‘du’의 출력과 혼동된다 .

file.o라는 파일을 만들고 file.o 파일의 크기를 확인하고 싶습니다.

du -h file.o ====> 4.0K

du -b file.o ====> 1120

에 따르면 du -b file.o, file.o는 1120bytes입니다. 그러나 왜 du -h file.o4.0K를 출력합니까 (평균 4 * 1024 바이트)?



답변

파일은 더 작지만 디스크에서 전체 4.0K 블록 하나를 사용합니다 (한 블록에 하나의 파일 만있을 수 있음). 바이트 크기가 (예를 들어) 5678 바이트 인 경우 두 개의 4.0K 블록, 즉 8.0K를 차지합니다.

du -b 기본 블록 크기를 무시하고 크기를 바이트 단위로 인쇄합니다.


답변

eumiro의 답변에 추가하기 위해 블록 크기는 파일 시스템 / 파티션마다 다를 수 있습니다.

다음을 사용하여 파일 시스템의 블록 크기를 찾을 수 있습니다 tune2fs -l /dev/<disk> | grep '^Block size'또는 stat -c "%o" <file on the disk>.