file(1) | Handbuchseite | file(1) |
Bezeichnung: file – bestimmt den DateitypSyntax: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üsselworte 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üsselworte benannt.
Der Dateisystemtest wird mit Hilfe des stat 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üsselworten sucht. Auf diese Weise kann beispielsweise C-Quelltext oder die Eingabe für den groff Textprozessor erkannt werden. Optionen:-mMagiedatei benutzt die benannte Magiedatei anstelle von /etc/magic für den Kennzahlentest -c gibt den interpretierten Inhalt der Kennzahlendatei für Testzwecke aus -fNamendatei 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.
Quelle: Linux-Anwenderhandbuch