블록 크기를 변경할 때 ls가 다른 파일 크기를 표시하는 이유는 무엇입니까?

블록 크기를 변경할 때 ls가 다른 파일 크기를 표시하는 이유는 무엇입니까?

내 파일 시스템 백업 크기를 확인하고 싶습니다.

ls -lia backup.tgz 
17 -rw-r--r-- 1 root root 84972633333 мај 28 10:05 backup.tgz

블록 크기는 M입니다.

 ls -l --block-size=M backup.tgz 
-rw-r--r-- 1 root root 81037M мај 28 10:05 backup.tgz

마지막으로 블록 크기 G를 사용하십시오.

ls -l --block-size=G backup.tgz 
-rw-r--r-- 1 root root 80G мај 28 10:05 backup.tgz

이렇게 큰 차이를 설명할 수 있는 사람이 있나요?

답변1

이 값은 10의 거듭제곱이 아닌 2의 거듭제곱을 사용하여 표시되므로 1M은 1,048,576바이트이고 1G는 1,073,741,824바이트입니다.

해당 나누기가 완료되면 값이 출력과 일치합니다 ls(반올림).

$ echo $((84972633333.0/1024/1024))
81036.218007087708

$ echo $((84972633333.0/1024/1024/1024))
79.136931647546589

10의 거듭제곱을 사용하는 대신 등을 KB지정할 수 있습니다 .MBGB

ls -l --block-size=MB backup.tgz

바라보다블록 크기에 대해coreutils설명서에서 자세히 알아보세요 .

관련 정보