Linux-Tutorial / Dateitypen und Metadaten: ls, file, stat und readlink
Der Name oder die Erweiterung einer Datei allein bestimmt in Linux nicht ihren Typ. ls -l zeigt den Typ des Dateisystemeintrags und grundlegende Attribute an, file untersucht den Inhalt, um ein Format abzuleiten, und stat zeigt Metadaten wie Größe, Berechtigungen, Zeitstempel und Inode an. Diese Lektion erklärt, was jedes Ergebnis Ihnen sagt – und nicht sagt.
Verwenden Sie die Übung zu Hard-Links und symbolischen Links, um Dateinamen, Inodes und gespeicherte Linkziele zu vergleichen, nachdem Sie diese Attribute gelesen haben.
Was ein Linux-Dateityp bedeutet
Linux-Dateisystemeinträge umfassen gewöhnliche Dateien, Verzeichnisse, symbolische Links und Geräte. Das erste Zeichen einer ls -l-Ausgabezeile identifiziert den Typ des Eintrags. Eine Erweiterung wie .txt oder .jpg ist lediglich ein Teil des Namens; sie ist nicht dieser Dateisystem-Typindikator.
| Erstes Zeichen | Typ | Beispiel |
|---|---|---|
- |
Reguläre Datei | Dokument- oder ausführbare Datei |
d |
Verzeichnis | Pfad, der andere Einträge enthält |
l |
Symbolischer Link | Eintrag, der auf einen anderen Pfad verweist |
c, b |
Zeichen- oder Blockgerät | Geräteeinträge unter /dev |
p, s |
FIFO (benannte Pipe) oder Socket | Einträge, die für die Interprozesskommunikation verwendet werden |
Geben Sie ein Ziel mit ls -ld an, wenn Sie genau diesen Eintrag inspizieren möchten. Das Ausführen von ls -l auf einem Verzeichnis kann dessen Inhalt auflisten, anstatt eine Zeile für das Verzeichnis anzuzeigen.
ls -ld /etc /etc/passwd
Die /etc-Zeile beginnt normalerweise mit d und die /etc/passwd-Zeile mit -. Die übrigen Spalten enthalten Berechtigungen, Linkanzahl, Besitzer, Gruppe, Größe, Änderungszeit und Name. Tatsächliche Werte und Anzeigedetails variieren je nach System.
Das Inhaltsformat mit file erkennen
file untersucht Dateisysteminformationen und Eigenschaften des Inhalts einer Datei und gibt dann eine menschenlesbare Beschreibung. Auch ohne eine Erweiterung kann /etc/passwd möglicherweise als Text erkannt werden.
file /etc/passwd
Die Ausgabe könnte ungefähr wie folgt aussehen; die Formulierung variiert je nach Kodierung und Implementierung.
/etc/passwd: ASCII text
Dies ist eine auf Inspektion basierende Klassifizierung und keine unfehlbare Bestätigung des Datei-Inhalts. Die für Textkodierung oder andere Formate gemeldeten Details hängen von den Erkennungsregeln ab. Bei einem symbolischen Link hängt es auch von Optionen und Umgebung ab, ob file den Link oder dessen Ziel inspiziert; vergleichen Sie file -h link mit file -L link.
Verwenden Sie stat, um Metadaten zu inspizieren
stat meldet Informationen, die vom Dateisystem verwaltet werden, nicht den Text oder andere Inhalte der Datei. Es kann Größe, Berechtigungen, Besitzer, Inode-Nummer, Link-Anzahl und mehrere Zeitstempel anzeigen. Ein Inode ist eine Dateisystemstruktur, die zur Verwaltung der Metadaten eines Eintrags verwendet wird; er ist vom Namen des Eintrags zu unterscheiden.
stat /etc/passwd
Für eine kürzere Ausgabe unterstützt GNU stat -c mit einem Formatstring. Hierbei ist %F der Dateityp, %s die Größe in Bytes und %n der Name.
stat -c '%F | %s bytes | %n' /etc/passwd
Das Ergebnis ist eine Zeile wie im folgenden Beispiel. 1234 ist eine illustrative Größe, keine Messung Ihrer Datei; die tatsächliche Größe und die Anzeigesprache können abweichen.
regular file | 1234 bytes | /etc/passwd
Das erste Feld bezeichnet eine reguläre Datei, das mittlere ihre Größe in Bytes und das letzte den untersuchten Pfad. In der vollständigen stat-Ausgabe steht Access für Zugriff, Modify für Inhaltsänderungen und Change für Änderungen des Metadatenstatus. Change ist keine Erstellungszeit. Birth bezeichnet die Erstellungszeit, sofern Dateisystem und Werkzeug diese bereitstellen.
Wenn Sie auf einen symbolischen Link stoßen
Ein symbolischer Link ist ein separater Eintrag, der auf einen anderen Pfad verweist. ls -l zeigt ihn üblicherweise als link -> target. readlink link gibt die im Link gespeicherte Pfadzeichenfolge aus. Wenn diese Zeichenfolge relativ ist, interpretieren Sie sie vom Verzeichnis aus, das den Link enthält, nicht vom aktuellen Verzeichnis Ihrer Shell.
Die Metadaten des Links unterscheiden sich von den Metadaten der Zieldatei. GNU stat untersucht normalerweise den Link selbst; verwenden Sie -L, um ihm zur Zieldatei zu folgen. Das Folgen eines defekten Links kann fehlschlagen. Die Lektion über Links behandelt das Erstellen von Links zum Üben.
Welchen Befehl sollten Sie wählen?
- Typ und grundlegende Attribute in einer Auflistung:
ls -l, oderls -ld, um den benannten Eintrag selbst zu prüfen. - Wahrscheinliches Inhaltsformat:
file. - Detaillierte Größe, Zeitstempel, Inode und andere Attribute:
stat. - Pfadzeichenfolge, die in einem symbolischen Link gespeichert ist:
readlink.
Für weitere Beispiele lesen Sie die Anleitungen zu file, stat und readlink.
Offizielle Dokumentation
Überprüfen Sie das file(1) Handbuch, die GNU stat Dokumentation und die GNU readlink Dokumentation für Optionen und Ausnahmen.




