(determine file type)
file ermittelt in den als Argument angegebenen Dateien, die Art des Inhalts bzw. den Typ des Arguments. file unterscheidet z.B. Dateiverzeichnisse, Gerätedateien, FIFO-Dateien, Bibliotheken, C-Quellprogramme, ausführbare Programme, Shell-Prozeduren und normale Textdateien.
Achtung!
file prüft in der magic-Datei die magic-Nummer, um so die betreffende Datei zu identifizieren. Wird die Datei hierdurch nicht identifiziert, versucht file über Plausibilitätstest den Dateityp festzustellen. Dies führt jedoch nicht immer zu korrekten Ergebnissen.
Syntax
Format 1: | file[ -h][ -m magicfile][ -f fdatei] datei ... |
Format 2: | file[ -h][ -m magicfile] -f fdatei[ datei ...] |
Format 3: | file -c[ -m magicfile] |
Art einer Datei bestimmen
(h - hidden) Falls die zu überprüfende Datei ein symbolischer Verweis ist, so wird diesem nicht nachgegangen. file gibt in diesem Fall folgende Meldung aus:
(m - magic) file benutzt statt der Systemdatei /etc/magic die Datei magicfile, um die Dateiformatkennungen (magic numbers) der zu überprüfenden Dateien zu bestimmen.
file interpretiert das Argument fdatei als Namen einer Datei, die die Namen aller zu überprüfenden Dateien enthält. Wenn Sie diese Option nicht angeben, dann müssen Sie wenigstens eine zu überprüfende Datei datei angeben.
Name der Datei, die file überprüfen soll. Falls die Datei ein symbolischer Verweis ist, so folgt file diesem Verweis und wertet die Ursprungsdatei aus. Pro Aufruf können Sie mehrere Dateinamen angeben. Wenn Sie die Option -f nicht angeben, dann müssen Sie wenigstens eine zu überprüfende Datei datei angeben. Überprüfung der magicfile
(c - check) Standardmäßig überprüft file die Systemdatei /etc/magic auf Formatfehler. Ist die Option -m angegeben, dann wird stattdessen die Datei magicfile überprüft.
(m - magicfile) file überprüft die Datei magicfile auf Formatfehler. |
Arbeitsweise
file führt für jede Eingabedatei eine Reihe von Tests durch und versucht so, den Dateiinhalt zu klassifizieren. Handelt es sich wahrscheinlich um eine Textdatei, dann prüft file deren Anfang (die ersten 512 Byte) und stellt Vermutungen an über die Sprache des Textes. Die Richtigkeit der Ausgabe ist jedoch nicht gewährleistet. Enthält die Eingabedatei ein ausführbares Programm, dann erkennt file dies und gibt weitere Informationen über den Dateiinhalt aus. Dazu durchsucht file die Datei nach sogenanntenmagic numbers, d.h. nach numerischen Konstanten oder Zeichenkettenkonstanten, die Aufschluss über die Art des Dateiinhaltes geben. Eine Erläuterung zu diesen magic numbers steht in der Datei /etc/magic. |
Ausgabe
file schreibt den Typ des Dateiinhalts bzw. der Datei auf die Standard-Ausgabe. Nachfolgend sind Ausgabetext und Bedeutung der wichtigsten Klassifikationen des file-Kommandos aufgelistet. ascii text: ASCII-Textdatei block special: blockorientierte Gerätedatei c program text: C-Quellprogramm character special: zeichenorientierte Gerätedatei commands text: Shell-Prozedur cpio archive: Bibliothek, erzeugt mit cpio, pax current ar archive: Bibliothek (siehe ar) data: Datei mit Daten directory: Dateiverzeichnis executable: Datei ausführbar (z.B. LLMs) empty file: leere Datei fifo: FIFO-Datei fortran program text: FORTRAN-Quellprogramm tar archive: Bibliothek, erzeugt mit tar, pax text: EBCDIC-Textdatei |
Datei
/etc/magic enthält Erläuterungen zu den magic numbers. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos file: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel
Die Datei liste enthält die folgenden Dateinamen: dvz brief lib.a prog.c Mit folgendem Aufruf erhalten Sie Informationen über die Art des Dateiinhalts:
dvz ist also ein Dateiverzeichnis, brief enthält normalen ASCII-Text. lib.a ist eine Bibliothek und prog.c enthält ein C-Quellprogramm. Die gleiche Ausgabe erhalten Sie mit dem Aufruf
|
Siehe auch
c89 [5] |