• Allgemein
  • So ermitteln Sie die Größe einer Datei unter Linux

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

Befehle zum Abrufen der Dateigröße

Unter Linux stehen dir verschiedene Befehle zur Verfügung, um die Größe von Dateien zu ermitteln. Hier sind einige der am häufigsten verwendeten Befehle:

‚ls -l‘

Der Befehl ls -l listet Dateien und Verzeichnisse in einem langen Format auf, das neben anderen Informationen auch die Größe jeder Datei in Bytes anzeigt. Du kannst auch die Option -h hinzufügen, um die Größe in einem für Menschen lesbaren Format wie Kilobyte (KB), Megabyte (MB) und Gigabyte (GB) anzuzeigen.

Beispiel:

ls -l datei.txt

Ausgabe:

-rw-r--r-- 1 user group 123456789 bytes 2023-03-08 14:32 datei.txt

‚du‘

Der Befehl du (Abkürzung für "disk usage") gibt eine Schätzung der Festplattennutzung von Dateien und Verzeichnissen aus. Er zeigt die Größe jeder Datei oder jedes Verzeichnisses in Bytes an, zusammen mit einer Aufschlüsselung der Festplattennutzung durch Unterverzeichnisse.

Beispiel:

du -h datei.txt

Ausgabe:

100M datei.txt

‚wc‘

Der Befehl wc (Abkürzung für "word count") zählt die Anzahl der Zeilen, Wörter und Bytes in einer Datei. Er kann auch verwendet werden, um die Größe einer Datei in Bytes anzuzeigen.

Beispiel:

wc -c datei.txt

Ausgabe:

123456789 datei.txt

Verwenden von ‚du‘ zum Anzeigen der Festplattennutzung

‚du‘ (Disk Usage) ist ein leistungsstarkes Befehlszeilentool, mit dem du die Festplattennutzung eines Verzeichnisses oder einer Datei ermitteln kannst. Es ist besonders nützlich, um große Verzeichnisse zu identifizieren, die viel Speicherplatz belegen, und um die Festplattennutzung überwachen.

Verwendung von ‚du‘

Die grundlegende Syntax von ‚du‘ lautet:

du [OPTIONEN] [DATEI/VERZEICHNIS]

Wobei:

  • [OPTIONEN] optionale Flags sind, um die Ausgabe zu ändern
  • [DATEI/VERZEICHNIS] der Pfad zur Zieldatei oder zum Zielverzeichnis ist

Wenn du ‚du‘ ohne Argumente ausführst, wird die Festplattennutzung des aktuellen Arbeitsverzeichnisses angezeigt.

Optionen von ‚du‘

Zu den nützlichen Optionen von ‚du‘ gehören:

  • -h, –human-readable: Zeigt die Größen in menschlich lesbaren Einheiten (z. B. KB, MB, GB) an.
  • -s, –summarize: Zeigt nur die Gesamtnutzung aller angegebenen Dateien oder Verzeichnisse an.
  • -a, –all: Zeigt die Größe aller Dateien an, einschließlich versteckter Dateien.
  • -c, –total: Druckt die Gesamtgröße aller Dateien oder Verzeichnisse.

Ein Beispiel

Um beispielsweise die Festplattennutzung des Verzeichnisses "/home" in menschlich lesbaren Einheiten anzuzeigen, würdest du folgenden Befehl ausführen:

du -h /home

Die Ausgabe könnte so aussehen:

24 MB	/home/benutzer/Dokumente
16 MB	/home/benutzer/Musik
48 MB	/home/benutzer/Bilder
8 GB	/home/benutzer/Videos
13 GB	/home

Vor- und Nachteile von ‚du‘

Vorteile:

  • Einfach zu verwenden
  • Leistungsstark
  • Kann die Festplattennutzung mehrerer Dateien oder Verzeichnisse anzeigen

Nachteile:

  • Kann bei sehr großen Verzeichnissen langsam sein
  • Zeigt möglicherweise nicht die tatsächliche Größe symbolischer Links an

‚ls -l‘ zur Anzeige von Dateigrößen

Du kannst den Befehl ‚ls -l‘ verwenden, um detaillierte Informationen über Dateien und Verzeichnisse anzuzeigen, einschließlich ihrer Größe. Der Befehl ‚ls‘ ist standardmäßig auf den meisten Linux-Systemen installiert und kann mit verschiedenen Optionen kombiniert werden, um die angezeigten Informationen anzupassen.

Dateigrößen anzeigen

Um die Größe einer Datei mit ‚ls -l‘ anzuzeigen, musst du die Option ‚-l‘ verwenden. Diese Option bewirkt, dass ‚ls‘ Informationen in einem Langformat anzeigt, das mehrere Spalten enthält, darunter die Größe der Datei in Bytes.

ls -l dateiname

Dateigrößen in lesbaren Formaten anzeigen

Die Ausgabe von ‚ls -l‘ zeigt die Dateigröße in Bytes an, was nicht immer benutzerfreundlich ist. Du kannst die Option ‚-h‘ verwenden, um die Dateigröße in einem lesbaren Format wie Kilobyte (KB), Megabyte (MB) oder Gigabyte (GB) anzuzeigen.

ls -lh dateiname

Symbole für Dateitypen

‚ls -l‘ zeigt auch Symbole an, die den Dateityp angeben. Beispielsweise wird eine normale Datei durch ein Bindestrich (-), ein Verzeichnis durch ein Schrägstrich (/) und ein symbolischer Link durch einen Pfeil (->) dargestellt.

Ausgeblendete Dateien und Verzeichnisse anzeigen

Standardmäßig zeigt ‚ls -l‘ keine versteckten Dateien und Verzeichnisse an. Um diese anzuzeigen, musst du die Option ‚-a‘ verwenden.

ls -la

’stat‘ zum Abrufen detaillierter Dateieigenschaften

Der Befehl ’stat‘ bietet eine umfassende Möglichkeit, detaillierte Informationen über eine Datei abzurufen, einschließlich ihrer Größe. Dieser Befehl gibt eine Vielzahl von Attributen über die Datei aus, die aufschlussreich sein können.

Grundlegende Informationen

Führe den Befehl ’stat‘ gefolgt vom Pfad zur Datei aus. Du erhältst eine Ausgabe, die Informationen wie Folgende enthält:

  • Dateiname
  • Dateityp (z. B. reguläre Datei, Verzeichnis, symbolischer Link)
  • Größe in Bytes
  • Dateizugriffsrechte
  • Eigentümer und Gruppe
  • Zeitstempel (z. B. Erstellungszeitpunkt, zuletzt geänderte Zeit)

Zusätzliche Attribute

’stat‘ liefert zusätzlich zur Dateigröße auch eine Fülle anderer Attribute, wie z. B.:

  • Zugriffszeit: Der Zeitpunkt, an dem zuletzt auf die Datei zugegriffen wurde.
  • Änderungszeit: Der Zeitpunkt, an dem zuletzt Änderungen an der Datei vorgenommen wurden.
  • Änderungszeit: Der Zeitpunkt, an dem zuletzt Änderungen am Metadaten der Datei vorgenommen wurden (z. B. Berechtigungen).
  • Gerätenummer: Die Nummer des Geräts, auf dem die Datei gespeichert ist.
  • Inodenummer: Eine eindeutige Nummer, die die Datei im Dateisystem identifiziert.

Verwendung

Um die detaillierten Eigenschaften einer Datei anzuzeigen, führe den folgenden Befehl aus:

stat /pfad/zur/datei

Du kannst auch die Option ‚-c‘ zusammen mit ’stat‘ verwenden, um die Ausgabe in einem übersichtlicheren Format anzuzeigen:

stat -c '%s %n' /pfad/zur/datei

Dies gibt die Dateigröße in Bytes und den Dateinamen aus.

Vorteile

Die Verwendung von ’stat‘ bietet folgende Vorteile:

  • Ermöglicht dir den Zugriff auf detaillierte Informationen über eine Datei, einschließlich ihrer Größe.
  • Kann zum Debuggen von Dateisystemproblemen verwendet werden.
  • Kann zur Verwaltung von Festplattenspeicher und zur Identifizierung großer Dateien verwendet werden.

Berechnen von Dateigrößen in Kilobyte, Megabyte und Gigabyte

Die von dir aufgeführten Befehle geben die Dateigröße in Bytes an. Dies kann unhandlich werden, insbesondere bei großen Dateien. Daher musst du möglicherweise die Dateigröße in lesbarere Einheiten wie Kilobyte (KB), Megabyte (MB) oder Gigabyte (GB) umrechnen.

Konvertierung von Bytes in KB, MB und GB

Um Bytes in KB zu konvertieren, dividiere durch 1.024. Für MB dividiere durch 1.048.576 und für GB durch 1.073.741.824.

Beispielsweise, um die Größe einer 10.000.000 Byte großen Datei in MB zu berechnen:

Dateigröße in MB = 10.000.000 Byte / 1.048.576 Byte/MB
= 9,5367431640625 MB

Abgerundete Dateigrößen

Die Befehle ls -l und du runden Dateigrößen standardmäßig auf ganze Zahlen, was zu Ungenauigkeiten führen kann. Um eine genauere Dateigröße zu erhalten, verwende die Option --block-size=1 mit dem Befehl du. Dies verhindert das Runden und liefert eine genauere Größe in Bytes.

du --block-size=1 <Dateiname>

Zusammenfassung

Durch Befolgen dieser Schritte kannst du die Dateigröße in lesbarere Einheiten wie KB, MB und GB umrechnen:

  1. Wähle einen Befehl wie ls -l, du oder stat, um die Dateigröße in Bytes zu ermitteln.
  2. Dividiere die Dateigröße durch 1.024 (KB), 1.048.576 (MB) oder 1.073.741.824 (GB), um in die gewünschte Einheit zu konvertieren.
  3. Verwende die Option --block-size=1 mit dem Befehl du, um genauere Dateigrößen zu erhalten.

Abrufen der Größe mehrerer Dateien

Manchmal musst du möglicherweise die Größe mehrerer Dateien gleichzeitig ermitteln. Hierfür gibt es verschiedene Möglichkeiten:

Verwenden von "du"

Der Befehl du kann verwendet werden, um die Festplattennutzung von Verzeichnissen und Dateien anzuzeigen. Um die Größe mehrerer Dateien abzurufen, kannst du du mit der Option -a verwenden, um alle Dateien aufzulisten:

du -a datei1 datei2 datei3

Verwenden von "find"

Der Befehl find kann verwendet werden, um nach Dateien zu suchen und deren Größe auszugeben. Um die Größe mehrerer Dateien abzurufen, kannst du find mit der Option -exec verwenden, um für jede gefundene Datei den Befehl ls -l auszuführen:

find . -type f -exec ls -l {} \;

Verwenden von Skripten

Du kannst auch ein Skript schreiben, um die Größe mehrerer Dateien abzurufen. Hier ist ein Beispiel für ein Bash-Skript:

#!/bin/bash

# Array mit Dateinamen erstellen
dateien=(datei1 datei2 datei3)

# Schleife durch Array
for datei in "${dateien[@]}"; do
  # Größe der Datei abrufen
  groesse=$(ls -l "$datei" | awk '{print $5}')
  
  # Größe ausgeben
  echo "Größe von $datei: $groesse"
done

Hinweise

  • Wenn du die Größe symbolischer Links ermitteln möchtest, verwende die Option -L mit du oder find.
  • Wenn du versteckte Dateien und Verzeichnisse berücksichtigen möchtest, verwende die Option -a mit ls oder find.
  • Du kannst die Größe von Dateien in Kilobyte (KB), Megabyte (MB) oder Gigabyte (GB) berechnen, indem du die entsprechende Option mit ls oder du verwendest.

Auflösen symbolischer Links zur Bestimmung der tatsächlichen Dateigröße

Symbolische Links, auch bekannt als Softlinks, sind Verweise auf andere Dateien oder Verzeichnisse im Dateisystem. Sie können dich verwirren, wenn du versuchst, die tatsächliche Größe einer Datei zu ermitteln.

Was sind symbolische Links?

Stell dir einen symbolischen Link wie eine Verknüpfung auf deinem Desktop vor. Sie verweist auf eine andere Datei oder ein anderes Verzeichnis, ohne den Inhalt tatsächlich zu enthalten. Wenn du auf einen symbolischen Link zugreifst, greifst du tatsächlich auf die verknüpfte Datei zu.

Warum ist die Auflösung symbolischer Links wichtig?

Wenn du die Größe einer Datei ermitteln möchtest, die durch einen symbolischen Link referenziert wird, erhältst du möglicherweise nicht die tatsächliche Größe. Stattdessen erhältst du die Größe des symbolischen Links selbst, die normalerweise sehr klein ist. Um die tatsächliche Dateigröße zu ermitteln, musst du den symbolischen Link auflösen.

So löst du symbolische Links auf

Du kannst den Befehl readlink verwenden, um den Zielpfad eines symbolischen Links aufzulösen. Beispiel:

readlink /pfad/zum/symbolischen_link

Dieser Befehl gibt den Pfad zur referenzierten Datei oder zum Verzeichnis aus. Du kannst dann die Größe der referenzierten Datei mit einem der in den vorherigen Abschnitten beschriebenen Befehle ermitteln.

Verwendung von stat zum Auflösen symbolischer Links

Der Befehl stat kann auch verwendet werden, um die Größe einer Datei zu ermitteln, die durch einen symbolischen Link referenziert wird. Allerdings löst stat standardmäßig symbolische Links nicht auf.

Um einen symbolischen Link mit stat aufzulösen, verwende die Option -L. Beispiel:

stat -L /pfad/zum/symbolischen_link

Dieser Befehl gibt die Größe der referenzierten Datei aus, auch wenn sie durch einen symbolischen Link referenziert wird.

Erkennen versteckter Dateien und Verzeichnisse

Versteckte Dateien und Verzeichnisse auf deinem Linux-System können wertvolle Informationen enthalten, die vor versehentlichen Änderungen geschützt werden sollen. Um auf diese versteckten Elemente zuzugreifen, musst du jedoch wissen, wo du sie findest und wie du sie anzeigst.

Versteckte Dateien anzeigen

Standardmäßig werden versteckte Dateien und Verzeichnisse unter Linux nicht in der Ausgabe von Befehlen wie "ls" angezeigt. Um sie sichtbar zu machen, musst du die Option "-a" verwenden:

ls -a

Dies listet alle Dateien und Verzeichnisse im aktuellen Verzeichnis auf, einschließlich versteckter Objekte. Versteckte Elemente werden in der Regel mit einem vorangestellten Punkt (.) gekennzeichnet, z. B. ".bashrc" oder ".git".

Versteckte Dateien in "du" berücksichtigen

Wenn du den Befehl "du" verwendest, um die Festplattennutzung anzuzeigen, werden versteckte Dateien und Verzeichnisse möglicherweise nicht standardmäßig berücksichtigt. Um sie einzubeziehen, verwende die Option "-a":

du -a

Dies stellt sicher, dass die Größe versteckter Elemente in der Gesamtfestplattennutzung berücksichtigt wird.

Versteckte Dateien mit "find" suchen

Wenn du nach bestimmten versteckten Dateien oder Verzeichnissen suchst, kannst du den Befehl "find" verwenden. Diese Option "-name" ermöglicht es dir, nach Dateinamen zu suchen, die mit einem Punkt beginnen:

find / -name .*

Dies durchsucht das gesamte System nach versteckten Dateien und Verzeichnissen und listet sie auf.

Vorsichtsmaßnahmen

Denke daran, beim Umgang mit versteckten Dateien und Verzeichnissen vorsichtig zu sein. Einige dieser Elemente sind für die ordnungsgemäße Funktion deines Systems unerlässlich und sollten nicht geändert oder gelöscht werden. Wenn du dir nicht sicher bist, was eine versteckte Datei oder ein Verzeichnis tut, belasse es lieber unverändert.

Automatisieren des Prozesses mit Skripten

Wenn du regelmäßig Dateigrößen ermitteln musst, kannst du diesen Prozess mit Hilfe von Skripten automatisieren. Auf diese Weise kannst du Zeit und Aufwand sparen und gleichzeitig die Genauigkeit gewährleisten.

Vorteile der Skriptautomatisierung

  • Effizient: Automatisierte Skripte können eine große Anzahl von Dateien schnell und effizient verarbeiten.
  • Präzise: Skripte führen Befehle konsistent und ohne menschliche Fehler aus.
  • Flexibel: Du kannst Skripte an deine spezifischen Anforderungen anpassen, z. B. bestimmte Verzeichnisse einbeziehen oder Filter für Dateitypen hinzufügen.

Shell-Skripte verwenden

Eine Möglichkeit, Skripte zu schreiben, ist die Verwendung von Shell-Skripten. Hier ist ein einfaches Bash-Skript, um die Größe aller Dateien in einem Verzeichnis rekursiv anzuzeigen:

#!/bin/bash

# Verzeichnis angeben
verzeichnis=$1

# Jede Datei im Verzeichnis durchlaufen
for datei in "$verzeichnis"/*; do
  # Dateigröße abrufen
  groesse=$(stat -c %s "$datei")

  # Dateiname und Größe ausgeben
  echo "$datei: $groesse Bytes"
done

Dieses Skript nimmt ein Verzeichnis als Argument und iteriert über alle Dateien darin. Für jede Datei ruft es die Größe mit dem Befehl stat ab und gibt sie aus.

Python-Skripte verwenden

Du kannst auch Python-Skripte verwenden, um die Dateigrößen zu automatisieren. Hier ist ein Python-Skript, um die Gesamtgröße aller Dateien in einem Verzeichnis zu ermitteln:

import os

# Verzeichnis angeben
verzeichnis = input("Verzeichnis: ")

# Gesamtgröße initialisieren
gesamtgroesse = 0

# Jede Datei im Verzeichnis durchlaufen
for datei in os.listdir(verzeichnis):
  # Dateipfad zusammenstellen
  pfad = os.path.join(verzeichnis, datei)
  
  # Dateigröße abrufen
  groesse = os.path.getsize(pfad)

  # Gesamtgröße aktualisieren
  gesamtgroesse += groesse

# Gesamtgröße ausgeben
print("Gesamtgröße: {} Bytes".format(gesamtgroesse))

Dieses Skript fordert den Benutzer auf, ein Verzeichnis einzugeben, und durchläuft dann alle Dateien darin. Es verwendet die getsize()-Funktion, um die Größe jeder Datei zu ermitteln, und summiert sie auf, um die Gesamtgröße zu erhalten.

Nächste Schritte

Sobald du ein Skript zur Automatisierung der Dateigrößenbestimmung geschrieben hast, kannst du es planen, um es regelmäßig auszuführen oder es in deinen Workflow zu integrieren. Du kannst auch erweiterte Funktionen wie das Filtern nach Dateitypen oder das Senden von Benachrichtigungen bei großen Dateien hinzufügen.