file

Funktion

file bestimmt den Dateityp

Syntax

file [-c ] [-f Namendatei] [-m Magiedatei] Datei ...

Beschreibung

file versucht die Art oder den Typ der angegebenen Datei zu bestimmen. Dazu werden drei Tests durchgeführt: ein Dateisystemtest, ein Kennzahlentest und ein Sprachtest. Der erste erfolgreiche Test führt zur Ausgabe des erkannten Dateityps.

Der erkannte Typ enthält normalerweise eines der Schlüsselwörter `text' für Dateien, die ohne Schwierigkeiten angezeigt werden können, `executable' für Dateien, die ausführbare Programme enthalten und auf dem einen oder anderen Unix-Rechner auch ausgeführt werden können, und `data' für alle anderen Dateien, die normalerweise nicht angezeigt werden können. Nur allgemein bekannte Dateiformate wie core-Dateien oder tar Archive werden ohne diese Schlüsselwörter benannt.

Der Dateisystemtest wird mit Hilfe des stat(2) Systemaufrufs durchgeführt. Hier werden leere Dateien ebenso erkannt wie alle Gerätedateien, Sockets, symbolische Links und andere Spezialdateien.

Der Kennzahlentest kann einige Dateien anhand festgelegter Kennzahlen - sogenannter `magic numbers' - erkennen, die sich in der Nähe des Dateianfangs an einer festgelegten Stelle befinden. Mit Hilfe solcher Kennzahlen entscheidet beispielsweise das Betriebssystem, ob eine Datei korrekt ausführbar ist oder nicht. Diese Kennzahlen sind in der Datei /etc/magic abgespeichert.

Wenn eine Datei als Text erkannt ist, versucht file noch, die (Programmier-)Sprache zu erkennen, indem es nach bestimmten Schlüsselwörtern sucht. Auf diese Weise kann beispielsweise C-Quelltext oder die Eingabe für den groff Textprozessor erkannt werden.

Optionen

-m Magiedatei
benutzt die benannte Magiedatei anstelle von /etc/magic für den Kennzahlentest
-c
gibt den interpretierten Inhalt der Kennzahlendatei für Testzwecke aus
-f Namendatei
veranlaßt file, die Namen der zu untersuchenden Programme aus der Namendatei zu lesen; in der Namendatei werden die Dateinamen durch Zeilenende getrennt aufgeführt