file

file
File
Aktuelle Version 5.09
(16. September 2011)
Betriebssystem Multiplattform
Kategorie Remote Access
Lizenz BSD-Lizenz
Deutschsprachig nein
www.darwinsys.com/file

file ist ein traditionelles Unix-Kommando zur Erkennung des Typs oder MIME-Typs einer Datei.

Inhaltsverzeichnis

Geschichte

Die erste Version von file datiert zurück bis 1973, Unix Research Version 4. System V beinhaltete schon eine wesentlich verbesserte Version von file, seit dieser Version wurden die Informationen über die Dateitypen nicht mehr direkt in die Programmdatei kompiliert, sondern von einer externen Textdatei (mime magic file) zur Laufzeit eingelesen.

Die heutzutage verbreiteten Unix-Derivate, das heißt vor allem BSD und Linux, verwenden eine freie Open-Source-Implementierung, die von Ian Darwin neu geschrieben wurde. Diese Implementierung wurde 1989 von Geoff Collyer weiterentwickelt und erhielt seitdem verschiedenste Verbesserungen, unter anderem von berühmten Open-Source-Hackern wie Guy Harris, Chris Lowth und Eric Fischer. Der aktuelle Betreuer ist Christos Zoulas.

Spezifikation

Die Single Unix Specification (SUS) sieht vor, dass eine Implementierung des Programms file eine fest definierte Reihe von Tests mit der auf der Kommandozeile angegebenen Datei durchführen muss, um damit ihren Typ festzustellen:

  • wenn die Datei nicht gelesen werden kann (beispielsweise aufgrund fehlender Dateirechten oder weil sie nicht existiert), ist ihr Typ nicht feststellbar (undefiniert). file gibt aus, dass die Datei nicht eingelesen werden konnte.
  • file stellt anhand eines „stat()“-Systemaufrufes fest, um welchen Dateityp es sich handelt. Unter Unix gibt es außer normalen Dateien noch Verzeichnisse, FIFOs, Sockets, Blockdateien (block special) und Zeichendateien (character special).
  • Leere Dateien werden als solche festgestellt (zum Beispiel Dateien, die per touch ohne Inhalt erstellt wurden, oder typischerweise Sperrdateien).
  • file liest die ersten Bytes bzw. die ganze Datei ein und versucht, dateitypspezifische Muster festzustellen, um auf diese Weise den Dateityp in Erfahrung zu bringen.
  • Wenn keine der Methoden zu einer Bestimmung des Dateityps geführt hat, wird die Datei als unbekannte Datei (data) bezeichnet.

In zeitgemäßen Implementierungen von file werden in den Tests, in denen Teile der Datei eingelesen werden, Vergleiche mit einer Textdatenbank angestellt, die magische Zahlen enthält. Damit unterscheidet sich file von wesentlich primitiveren Dateityperkennungen, z. B. anhand Dateiendungen oder MIME-Typ-Angaben.

In den meisten Implementierungen benutzt file eine Datenbank, mit der es die ersten Bytes einer Datei abgleicht. Diese Datenbank wird üblicherweise in einer sogenannten magic-Datei (engl., Zauberei) gespeichert, welche typischerweise im Dateisystem unter /etc/magic, /usr/share/file/magic o. ä. gespeichert wird. Der Umfang dieser Datei ist meist ausschlaggebend für die Güte der file-Tests zur Bestimmung auch exotischer Dateitypen.

Benutzung

file lässt sich, wie die meisten Unix-Kommandos, quasi intuitiv benutzen. Ein Aufruf läuft nach dem Schema

file [Optionen] Datei

Eine der Single Unix Specification konforme Implementierung von file muss mindestens die folgenden Argumente verarbeiten können:

Befehlszeilenparameter von file
Parameter Bedeutung
‑M magicfile Eine eigene „magische“ Datei angeben, die zur Dateityp-Bestimmung benutzt werden soll. Die normalerweise durchgeführten Tests werden dabei übersprungen.
‑m magicfile Funktioniert genauso wie -M magicfile, nur dass die anderen Tests auch durchgeführt werden.
-h Die potentielle Verwendung von Softlinks ausgeben.
-i Klassifiziert die Datei in eine der folgenden Gruppen: nonexistent, directory, FIFO, socket, block special, character special, symbolic link, regular file, empty file, unreadable file, executable, ar archive, extended cpio format, extended tar format, shell script, C programming language source, FORTRAN programming language source, data file

Beispiele

Die folgenden Beispiele zeigen die typischen Ausgaben von file, wenn man das Programm mit diversen Dateitypen aufruft. Die fiktiven Dateinamen sollen dabei dem eigenen Dateityp entsprechen. Das Doppelkreuz # soll andeuten, dass diese Zeile in einer Shell eingegeben werden muss.

# file file.c
file.c: C program text

# file program
program: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked 
    (uses shared libs), stripped

# file /dev/wd0a
/dev/wd0a: block special (0/0)

# file -s /dev/hda1
/dev/hda1: Linux/i386 ext2 filesystem

# file -s /dev/hda5
/dev/hda5: Linux/i386 swap file

# file compressed.gz
compressed.gz: gzip compressed data, deflated, original filename, `compressed', last
    modified: Thu Jan 26 14:08:23 2006, os: Unix

# file data.ppm
data.ppm: Netpbm PPM "rawbits" image data

Siehe auch

  • binfmt misc: Ein Linux-Kernelmodul, das wie file anhand der ersten Bytes von Dateien (magic numbers) Dateitypen zu erkennen versucht und damit Programme erkennt und ausführt.

Weblinks

Quellen


Wikimedia Foundation.

Игры ⚽ Нужен реферат?
Synonyme:

Schlagen Sie auch in anderen Wörterbüchern nach:

  • file — file …   Dictionnaire des rimes

  • filé — filé …   Dictionnaire des rimes

  • file — [ fil ] n. f. • av. 1464; de filer 1 ♦ Suite (de personnes, de choses) dont les éléments sont placés un par un et l un derrière l autre (à la différence du rang). File de gens. ⇒ colonne, procession. « Barca vit avancer un des miliciens, puis une …   Encyclopédie Universelle

  • filé — file [ fil ] n. f. • av. 1464; de filer 1 ♦ Suite (de personnes, de choses) dont les éléments sont placés un par un et l un derrière l autre (à la différence du rang). File de gens. ⇒ colonne, procession. « Barca vit avancer un des miliciens,… …   Encyclopédie Universelle

  • File — Aktuelle Version: 5.01 (30. April 2009) Betriebssystem: Multiplattform Kategorie: Remote Access Lizenz: GPL …   Deutsch Wikipedia

  • file — 1 vb filed, fil·ing vt 1 a: to submit (a legal document) to the proper office (as the office of a clerk of court) for keeping on file among the records esp. as a procedural step in a legal transaction or proceeding filed a tax return a financing… …   Law dictionary

  • File — (f[imac]l), n. [F. file row (cf. Pr., Sp., Pg., & It. fila), LL. fila, fr. L. filum a thread. Cf. {Enfilade}, {Filament}, {Fillet}.] 1. An orderly succession; a line; a row; as: (a) (Mil.) A row of soldiers ranged one behind another; in… …   The Collaborative International Dictionary of English

  • File — (f[imac]l), n. [AS. fe[ o]l; akin to D. viji, OHG. f[=i]la, f[=i]hala, G. feile, Sw. fil, Dan. fiil, cf. Icel. [thorn][=e]l, Russ. pila, and Skr. pi[,c] to cut out, adorn; perh. akin to E. paint.] 1. A steel instrument, having cutting ridges or… …   The Collaborative International Dictionary of English

  • File 13 — is a euphemism for the trash can. The phrase is especially used in the U.S. military, and is less common outside of the United States. In the United Kingdom, for instance, the expression round file or circular file is more common (in reference to …   Wikipedia

  • File — has several meanings:* Filing cabinet * File (tool) * A nail file * Filing (legal) * Filing (manufacturing process) * File (formation) Military term for a single column of men one in front of the other. See also Rank (formation) * File (chess) *… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”