Warum ist die Dateigröße bei ls-Show unterschiedlich, wenn die Blockgröße geändert wird?

Warum ist die Dateigröße bei ls-Show unterschiedlich, wenn die Blockgröße geändert wird?

Ich wollte die Größe meines Dateisystem-Backups überprüfen

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

Mit Blockgröße M

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

Endlich mit Blockgröße G

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

Könnte jemand diesen großen Unterschied erklären?

Antwort1

Die Werte werden in Zweierpotenzen und nicht in Zehnerpotenzen angezeigt. 1 M entspricht also 1.048.576 Bytes und 1 G entspricht 1.073.741.824 Bytes.

Bei entsprechender Division ergeben sich folgende Werte ls(aufgerundet):

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

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

Sie können stattdessen KB, MB, GBusw. angeben, um Zehnerpotenzen zu verwenden:

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

Sehender Abschnitt über BlockgrößencoreutilsWeitere Einzelheiten finden Sie in der Dokumentation.

verwandte Informationen