Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

file - Art einer Datei bestimmen

&pagelevel(4)&pagelevel

(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


Format 1:file[ -h][ -m magicfile][ -f fdatei] datei ...
Format 2:file[ -h][ -m magicfile] -f fdatei[ datei ...]


-h

(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:

datei1: symbolic link to datei2

-m magicfile

(m - magic)

file benutzt statt der Systemdatei /etc/magic die Datei magicfile, um die Dateiformatkennungen (magic numbers) der zu überprüfenden Dateien zu bestimmen.

-f fdatei

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.

datei

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


Format 3:file -c[ -m magicfile]


-c

(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

(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:

$ file -f liste

dvz:            directory
brief:          ascii text

lib.a:          current ar archive

prog.c:         c program text

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

$ file dvz brief lib.a prog.c

Siehe auch

c89 [5]