<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=File</id>
	<title>File - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=File"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=File&amp;action=history"/>
	<updated>2026-05-14T23:02:37Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Demo Wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://demowiki.knowlus.com/index.php?title=File&amp;diff=1182&amp;oldid=prev</id>
		<title>imported&gt;Karl432: Linkfix nach Lemmaverschiebung</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=File&amp;diff=1182&amp;oldid=prev"/>
		<updated>2024-10-14T08:03:59Z</updated>

		<summary type="html">&lt;p&gt;Linkfix nach Lemmaverschiebung&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:file}}&lt;br /&gt;
{{Dieser Artikel|behandelt das Unix-Programm &amp;#039;&amp;#039;file&amp;#039;&amp;#039;. Im Speziellen ist &amp;#039;&amp;#039;(data) file&amp;#039;&amp;#039; der englische Begriff für [[Datei]], im Allgemeinen für eine [[Akte]] oder [[Kartei]]. Siehe auch [[Filé]], [[Filet]] bzw. [[Phile]].}}&lt;br /&gt;
{{Infobox Software&lt;br /&gt;
|Name                  = file&lt;br /&gt;
|Logo                  = &lt;br /&gt;
|Screenshot            = [[Datei:File-example-command-gimp.gif|rahmenlos|Beispiel]]&lt;br /&gt;
|Beschreibung          = Beispiel&lt;br /&gt;
|Maintainer            = Christos Zoulas&lt;br /&gt;
|Hersteller            = &lt;br /&gt;
|Erscheinungsjahr      = &lt;br /&gt;
|AktuelleVersion       = &lt;br /&gt;
|AktuelleVersionFreigabeDatum = &lt;br /&gt;
|AktuelleVorabVersion  = &lt;br /&gt;
|AktuelleVorabVersionFreigabeDatum = &lt;br /&gt;
|Betriebssystem        = &lt;br /&gt;
|Programmiersprache    = &lt;br /&gt;
|Kategorie             = Befehlszeilenprogramm&lt;br /&gt;
|Lizenz                = &lt;br /&gt;
|Deutsch               = nein&lt;br /&gt;
|Website               = &lt;br /&gt;
|Dateien               = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;file&amp;#039;&amp;#039;&amp;#039; ist ein [[Unix-Kommando|Unix-Programm]] zum Auslesen des Unix-Dateityps, des [[Dateiformat]]s oder des [[Internet Media Type|MIME-Typs]] einer [[Datei]] sowie anderer Informationen über selbige. Dabei kann &amp;#039;&amp;#039;file&amp;#039;&amp;#039; lediglich jene Dateiformate und MIME-Typen korrekt ausgeben, die dem zugrundeliegenden Betriebssystem bekannt sind.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://manpages.debian.org/buster/file/file.1.en.html |titel=FILE(1) |werk=Debian Manpages (Debian Handbuchseiten) |abruf=2021-02-20 |sprache=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Die erste Version von &amp;#039;&amp;#039;file&amp;#039;&amp;#039; datiert zurück bis 1973, &amp;#039;&amp;#039;Unix Research Version 4&amp;#039;&amp;#039;. [[System V]] beinhaltete schon eine wesentlich verbesserte Version von &amp;#039;&amp;#039;file&amp;#039;&amp;#039;, seit dieser Version wurden die Informationen über die Dateitypen nicht mehr direkt in die [[Ausführbare Datei|Programmdatei]] kompiliert, sondern von einer externen Textdatei (&amp;#039;&amp;#039;mime magic file&amp;#039;&amp;#039;) zur [[Laufzeit (Informatik)|Laufzeit]] eingelesen.&lt;br /&gt;
&lt;br /&gt;
Die heutzutage verbreiteten Unix-Derivate, das heißt vor allem [[Berkeley Software Distribution|BSD]] und [[Linux]], verwenden eine freie [[Open Source|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.&lt;br /&gt;
&lt;br /&gt;
== Spezifikation ==&lt;br /&gt;
Die [[Single UNIX Specification]] (SUS) sieht vor, dass eine Implementierung des Programms &amp;#039;&amp;#039;file&amp;#039;&amp;#039; eine fest definierte Reihe von Tests mit der auf der Kommandozeile angegebenen Datei durchführen muss, um damit ihren Typ festzustellen:&lt;br /&gt;
* wenn die Datei nicht gelesen werden kann (beispielsweise aufgrund fehlender [[Unix-Dateirechte|Dateirechte]] oder weil sie nicht existiert), ist ihr Typ nicht feststellbar (undefiniert). &amp;#039;&amp;#039;file&amp;#039;&amp;#039; gibt aus, dass die Datei nicht eingelesen werden konnte.&lt;br /&gt;
* &amp;#039;&amp;#039;file&amp;#039;&amp;#039; stellt anhand eines &amp;lt;code&amp;gt;stat()&amp;lt;/code&amp;gt;-[[Systemaufruf]]es fest, um welchen Dateityp es sich handelt. Unter Unix gibt es außer normalen Dateien noch [[Verzeichnis]]se, [[Named Pipe|FIFOs]], [[Socket (Software)|Sockets]], [[Gerätedatei#Blockorientierte Geräte|Blockdateien]] (&amp;#039;&amp;#039;block special&amp;#039;&amp;#039;) und [[Gerätedatei#Zeichenorientierte Geräte|Zeichendateien]] (&amp;#039;&amp;#039;character special&amp;#039;&amp;#039;).&lt;br /&gt;
* Leere Dateien werden als solche festgestellt (zum Beispiel Dateien, die per &amp;lt;code&amp;gt;[[Touch (Unix)|touch]]&amp;lt;/code&amp;gt; ohne Inhalt erstellt wurden, oder typischerweise [[Lock|Sperrdateien]]).&lt;br /&gt;
* &amp;#039;&amp;#039;file&amp;#039;&amp;#039; liest die ersten Bytes bzw. die ganze Datei ein und versucht, dateitypspezifische Muster festzustellen, um auf diese Weise den Dateityp in Erfahrung zu bringen.&lt;br /&gt;
* Wenn keine der Methoden zu einer Bestimmung des Dateityps geführt hat, wird die Datei als &amp;#039;&amp;#039;unbekannte Datei (data)&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
In zeitgemäßen Implementierungen von &amp;#039;&amp;#039;file&amp;#039;&amp;#039; werden in den Tests, in denen Teile der Datei eingelesen werden, Vergleiche mit einer Textdatenbank angestellt, die [[Magische Zahl (Informatik)|magische Zahlen]] enthält. Damit unterscheidet sich &amp;#039;&amp;#039;file&amp;#039;&amp;#039; von wesentlich primitiveren Dateityperkennungen, z.&amp;amp;nbsp;B. anhand [[Dateiendung]]en oder [[Internet Media Type|MIME-Typ]]-Angaben.&lt;br /&gt;
&lt;br /&gt;
In den meisten Implementierungen benutzt &amp;#039;&amp;#039;file&amp;#039;&amp;#039; eine [[Datenbank]], mit der es die ersten Bytes einer Datei abgleicht. Diese Datenbank wird üblicherweise in einer sogenannten &amp;#039;&amp;#039;magic&amp;#039;&amp;#039;-Datei ([[Englische Sprache|engl.]], Magisch) gespeichert, welche typischerweise im [[Dateisystem]] unter &amp;lt;code&amp;gt;/etc/magic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/usr/share/file/magic&amp;lt;/code&amp;gt; o.&amp;amp;nbsp;ä. gespeichert wird. Der Umfang dieser Datei ist meist ausschlaggebend für die Güte der &amp;#039;&amp;#039;file&amp;#039;&amp;#039;-Tests zur Bestimmung auch exotischer Dateitypen.&lt;br /&gt;
&lt;br /&gt;
== Benutzung ==&lt;br /&gt;
&amp;#039;&amp;#039;file&amp;#039;&amp;#039; lässt sich, wie die meisten Unix-Kommandos, quasi intuitiv benutzen. Ein Aufruf läuft nach dem Schema&lt;br /&gt;
 file &amp;#039;&amp;#039;[Optionen]&amp;#039;&amp;#039; &amp;#039;&amp;#039;Datei&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Eine der [[Single UNIX Specification]] konforme Implementierung von &amp;#039;&amp;#039;file&amp;#039;&amp;#039; muss mindestens die folgenden Argumente verarbeiten können:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ [[Parameter (Informatik)#Befehlszeilenparameter|Befehlszeilenparameter]] von &amp;#039;&amp;#039;file&amp;#039;&amp;#039;&lt;br /&gt;
|--&lt;br /&gt;
! Parameter&lt;br /&gt;
! Bedeutung&lt;br /&gt;
|--&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;#x2011;M&amp;amp;nbsp;&amp;#039;&amp;#039;magicfile&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Eine eigene „magische“ Datei angeben, die zur Dateityp-Bestimmung benutzt werden soll. Die normalerweise durchgeführten Tests werden dabei übersprungen.&lt;br /&gt;
|---&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;#x2011;m&amp;amp;nbsp;&amp;#039;&amp;#039;magicfile&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|Funktioniert genauso wie &amp;lt;code&amp;gt;-M &amp;#039;&amp;#039;magicfile&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;, nur dass die anderen Tests auch durchgeführt werden.&lt;br /&gt;
|---&lt;br /&gt;
| &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;&lt;br /&gt;
|Die potentielle Verwendung von [[Softlink]]s ausgeben.&lt;br /&gt;
|---&lt;br /&gt;
| &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt;&lt;br /&gt;
|Klassifiziert die Datei in eine der folgenden Gruppen: &amp;#039;&amp;#039;nonexistent, [[Verzeichnis|directory]], [[Named Pipe|FIFO]], [[Socket (Software)|socket]], [[Gerätedatei#Blockorientierte Geräte|block special]], [[Gerätedatei#Zeichenorientierte Geräte|character special]], [[Softlink|symbolic link]], regular file, empty file, unreadable file, [[Ausführbare Datei|executable]], [[Ar (Unix)|ar archive]], [[Cpio|extended cpio format]], [[Tar (Packprogramm)|extended tar format]], [[Shell-Skript|shell script]], [[C (Programmiersprache)|C programming language source]], [[Fortran|FORTRAN programming language source]], data file&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
Die folgenden Beispiele zeigen die typischen Ausgaben von &amp;#039;&amp;#039;file&amp;#039;&amp;#039;, wenn man das Programm mit diversen Dateitypen aufruft. Die fiktiven [[Dateiname]]n sollen dabei dem eigenen Dateityp entsprechen. Das [[Rautezeichen]] &amp;#039;&amp;#039;#&amp;#039;&amp;#039; soll andeuten, dass diese Zeile in einer [[Unix-Shell|Shell]] eingegeben werden muss.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# file file.c&lt;br /&gt;
file.c: C program text&lt;br /&gt;
&lt;br /&gt;
# file program&lt;br /&gt;
program: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked&lt;br /&gt;
    (uses shared libs), stripped&lt;br /&gt;
&lt;br /&gt;
# file /dev/wd0a&lt;br /&gt;
/dev/wd0a: block special (0/0)&lt;br /&gt;
&lt;br /&gt;
# file -s /dev/hda1&lt;br /&gt;
/dev/hda1: Linux/i386 ext2 filesystem&lt;br /&gt;
&lt;br /&gt;
# file -s /dev/hda5&lt;br /&gt;
/dev/hda5: Linux/i386 swap file&lt;br /&gt;
&lt;br /&gt;
# file compressed.gz&lt;br /&gt;
compressed.gz: gzip compressed data, deflated, original filename, `compressed&amp;#039;, last&lt;br /&gt;
    modified: Thu Jan 26 14:08:23 2006, os: Unix&lt;br /&gt;
&lt;br /&gt;
# file data.ppm&lt;br /&gt;
data.ppm: Netpbm PPM &amp;quot;rawbits&amp;quot; image data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* &amp;#039;&amp;#039;[[binfmt misc]]&amp;#039;&amp;#039;: Ein [[Linux]]-[[Linux (Kernel)|Kernelmodul]], das wie &amp;#039;&amp;#039;file&amp;#039;&amp;#039; anhand der ersten Bytes von Dateien (&amp;#039;&amp;#039;magic numbers&amp;#039;&amp;#039;) Dateitypen zu erkennen versucht und damit Programme erkennt und ausführt.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{man||file|posix|determine file type}}&lt;br /&gt;
* POSIX-Funktionsaufruf &amp;lt;code&amp;gt;[https://pubs.opengroup.org/onlinepubs/009695399/functions/stat.html stat()]&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{man|1|file|bsd|}}&lt;br /&gt;
* {{man|1|file|gnu|}}&lt;br /&gt;
* [http://ftp.astron.com/pub/file/ Sourcecode] von &amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://media.ccc.de/v/gpn14_-_5852_-_de_-_medientheater_-_201406201430_-_identifizierung_von_dateien_mit_file_libmagic_-_christoph_biedl Vortrag] mit Details zur Arbeitsweise von file&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Unix-Software]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Karl432</name></author>
	</entry>
</feed>