So ermitteln Sie die Größe einer Datei oder eines Verzeichnisses unter Linux

Wenn du den Befehl du unter Linux einsetzt, erhältst du Informationen sowohl über die tatsächlich genutzte Speicherkapazität als auch über die reine Größe einer Datei oder eines Verzeichnisses. Wir beleuchten, warum diese Werte oft differieren.

Tatsächlicher Speicherverbrauch versus Dateigröße

Die Größe einer Datei und der Speicherplatz, den sie auf der Festplatte einnimmt, stimmen oft nicht überein. Die Speicherung erfolgt in Blöcken. Selbst wenn eine Datei kleiner ist als ein Block, wird ihr ein ganzer Block zugewiesen, weil das Dateisystem keine kleinere Speichereinheit kennt.

Wenn die Dateigröße kein exaktes Vielfaches der Blockgröße darstellt, muss der belegte Speicherplatz immer auf den nächsten ganzen Block aufgerundet werden. Angenommen, eine Datei ist größer als zwei, aber kleiner als drei Blöcke, dann belegt sie trotzdem drei Blöcke auf der Festplatte.

Bezüglich der Dateigröße gibt es zwei Messwerte: die tatsächliche Größe, also die Menge der Daten-Bytes, und die effektive Größe auf der Festplatte, also die Anzahl der Blöcke, die zur Speicherung benötigt werden.

Ein praktisches Beispiel

Betrachten wir ein einfaches Beispiel. Wir leiten ein einzelnes Zeichen in eine Datei um, um eine kleine Testdatei anzulegen:

echo "1" > testdatei.txt

Um die Dateigröße anzuzeigen, nutzen wir nun die erweiterte Formatierungsoption ls:

ls -l testdatei.txt

Die Größe wird als Zahlenwert vor den Nutzereinträgen angezeigt – hier also zwei Bytes. Warum sind es zwei Bytes, wenn wir doch nur ein Zeichen in die Datei geschrieben haben? Lassen wir uns die Inhalte der Datei genauer ansehen.

Wir verwenden den Befehl hexdump, der uns die genaue Byte-Anzahl liefert und uns nicht druckbare Zeichen in Hexadezimalwerten anzeigt. Mit der Option -C (kanonisch) wird die Ausgabe als hexadezimale Werte erzwungen: