Provided by: manpages-de_4.27.0-1_all 

BEZEICHNUNG
file — Bestimmt den Dateityp
ÜBERSICHT
file [-bcdEhiklLNnprsSvzZ0] [--apple] [--exclude-quiet] [--extension] [--mime-encoding] [--mime-type]
[-e Testname] [-F Trenner] [-f Namensdatei] [-m Magic-Dateien] [-P Name=Wert] file ... file -C [-m
Magic-Dateien] file [--help]
BESCHREIBUNG
Diese Handbuchseite dokumentiert Version 5.46 des Befehls .
file überprüft jedes Argument, um es einzusortieren. Es gibt drei Arten von Tests, die in dieser
Reihenfolge ausgeführt werden: Dateisystemtests, magische Tests und Sprachtests. Der erste erfolgreiche
Test führt zur Ausgabe des Dateityps.
Der ausgegebene Typ wird normalerweise eines der Worte text (die Datei enthält nur darstellbare Zeichen
und ein paar typische Steuerzeichen und kann wahrscheinlich problemlos auf einem ASCII -Terminal gelesen
werden), executable (die Datei enthält das Ergebnis einer Kompilierung eines Programms in eine Form, die
von einem UNIX -Kernel oder einem anderen verstanden werden kann) oder data, das alles andere bedeutet
(Daten sind normalerweise »binär« oder nicht darstellbar), enthalten. Ausnahmen sind gut bekannte
Dateiformate (Core-Dateien, TAR-Archive), die bekanntermaßen binäre Daten enthalten. Wenn Sie magische
Dateien oder das Programm selbst verändern, stellen Sie sicher, dass Sie »diese Schlüsselwörter
erhalten«. Benutzer verlassen sich darauf, dass für alle im Verzeichnis lesbaren Dateien das Wort »text«
ausgegeben wird. Machen Sie es nicht wie Berkeley, die »shell commands text« in »shell script« änderten.
Die Dateisystemtests basieren auf der Untersuchung der Rückgabe des Systemaufrufs stat(2). Das Programm
prüft, ob die Datei leer ist oder ob sie eine Art von besonderer Datei ist. Sämtliche bekannten und für
Ihr betriebenes System geeignete Dateien (Sockets, symbolische Links oder benannte Pipes (FIFOs), auf den
Systemen, auf denen diese implementiert sind) werden intuitiv erfasst, falls Sie in der System-Header-
Datei <sys/stat.h> definiert sind.
Die magischen Tests werden verwandt, um auf Dateien zu prüfen, deren Daten in einem bestimmten, festen
Format vorliegen. Das kanonische Beispiel hierfür ist das ausführbare Programm (kompiliertes Programm) in
einer a.out -Datei, dessen Format in <elf.h>, <a.out.h> und möglicherweise <exec.h> im Standard-
Einbindeverzeichnis definiert ist. Diese Dateien haben eine »magische Zahl«, die an einem bestimmten Ort
nahe des Anfangs der Datei gespeichert ist und die dem UNIX -Betriebssystem mitteilt, dass die Datei ein
ausführbares Programm ist und welches der mehreren Typen davon es ist. Das Konzept der »magischen Zahlen«
wurde auf Erweiterungen zu Datendateien angewandt. Jede Datei mit einem invarianten Kennzeichner bei
einem kleinen, festen Versatz in die Datei kann normalerweise auf diese Art beschrieben werden. Die
Information, die diese Dateien identifiziert, wird aus /etc/magic und der kompilierten magischen Datei
/usr/share/misc/magic.mgc oder aus den Dateien im Verzeichnis /usr/share/misc/magic, falls die
kompilierte Datei nicht existiert, gelesen. Zusätzlich werden die Dateien $HOME/.magic.mgc oder
$HOME/.magic gelesen, falls sie existieren, und haben Vorrang vor der magischen Datei des Systems.
Falls eine Datei auf keine der Einträge in der magischen Datei passt, dann wird die Datei untersucht, ob
sie eine Textdatei zu sein scheint. ASCII, ISO-8859-x, nicht-ISO 8-Bit erweiterte ASCII-Zeichensätze (wie
diese auf Macintosh und IBM-PC-Systemen verwandt werden), UTF-8-kodiertes Unicode, UTF-16-kodiertes
Unicode und EBCDIC-Zeichensätze können durch verschiedene Bereiche und Sequenzen von Bytes, die
darstellbaren Text in jedem Satz formen, unterschieden werden. Falls eine Datei einen dieser Tests
besteht, wird ihr Zeichensatz berichtet. ASCII, ISO-8859-x, UTF-8 und erweiterte ASCII-Dateien werden als
»text« identifiziert, da sie größtenteils auf fast jedem Terminal lesbar sein werden; UTF-16 und EBCDIC
sind nur »character data«, da der Text einer Übersetzung bedarf, bevor er lesbar ist. Zusätzlich wird
file versuchen, weitere Eigenschaften von textartigen Dateien zu bestimmen. Falls die Zeilen durch
Wagenrücklauf (CR), Zeilenumbruch und Wagenrücklauf (CRLF) oder NEL anstatt des UNIX-Standards
Zeilenumbruch (LF) beendet werden, wird dies gemeldet. Dateien, die eingebettete Maskiersequenzen oder
Durchstreichungen enthalten, werden auch identifiziert.
Sobald file den in der textartigen Datei verwandten Zeichensatz ermittelt hat, wird es versuchen, die
Sprache, in der die Datei geschrieben ist, zu ermitteln. Der Sprachtest sucht nach bestimmten
Zeichenketten (z.B. <names.h>) die irgendwo in den ersten Blöcken einer Datei auftauchen können.
Beispielsweise deutet das Schlüsselwort .br an, dass die Datei höchstwahrscheinlich eine troff(1)
-Eingabedatei ist, sowie das Schlüsselwort struct auf ein C-Programm hinweist. Diese Tests sind weniger
zuverlässig als die vorherigen zwei Gruppen, daher werden sie als letztes durchgeführt. Die
Sprachtestroutinen prüfen auf einiges Vermischtes (wie tar(1) -Archive, JSON-Dateien).
Jede Datei, bei der keine der oben aufgeführten Zeichensätze identifiziert werden kann, wird einfach als
»data« gemeldet.
OPTIONEN
--apple
Führt dazu, dass der Befehl file den Dateityp und das Erstellerkürzel ausgibt, wie dies von
früheren MacOS-Versionen verwandt wurde. Das Kürzel besteht aus acht Buchstaben, wobei der erste
den Dateityp, die nachfolgenden den Ersteller beschreiben. Diese Option wirkt nur für
Dateiformate korrekt, für die eine Apple-artige Ausgabe definiert ist.
-b, --brief
Hängt keine Dateinamen vor Ausgabezeilen (knapper Modus).
-C, --compile
Schreibt eine magic.mgc Ausgabedatei, die eine vorverarbeitete Version der Magic-Datei oder des
Magic-Verzeichnisses enthält.
-c, --checking-printout
Führt zu einer Überprüfungsausgabe der ausgewerteten Form der Magic-Datei. Dies wird
normalerweise im Zusammenspiel mit der Option -m verwandt, um Fehler in einer neuen Magic-Datei
zu finden, bevor diese installiert wird.
-d Gibt interne Fehlersuchinformationen auf Stderr aus.
-E Gibt bei Dateisystemfehlern (z.B. Datei nicht gefunden) eine Fehlermeldung aus und beendet das
Programm, statt den Fehler als reguläre Ausgabe zu handhaben (wie dies POSIX vorgibt) und
fortzufahren.
-e, --exclude Testname
Schließt den Test namens Testname aus der Liste der zur Bestimmung des Dateityps durchgeführten
Tests aus. Gültige Testnamen sind:
apptype EMX -Anwendungstyp (nur unter EMX).
ascii Verschiedene Arten von Textdateien (dieser Test wird versuchen, die Textkodierung,
unabhängig von der Einstellung der Option »encoding«, zu erraten).
encoding Verschiedene Textkodierungen für weiche magische Tests.
tokens Zwecks Rückwärtskompatibilität ignoriert.
cdf Gibt Details zu »Compound Document Files« aus.
compress Prüft auf komprimierte Dateien und schaut hinein.
csv Prüft auf »Comma Separated Value«-Dateien (durch Kommata getrennte Werte).
elf Gibt ELF-Dateien-Details aus, vorausgesetzt, weiche magische Tests sind aktiviert und
die Elf-Magie wird gefunden.
json Untersucht JSON- (RFC-7159)-Dateien durch deren Auswertung auf Regeltreue.
soft Verwendet magische Dateien.
simh Untersucht SIMH-Band-Dateien.
tar Untersucht TAR-Dateien durch Überprüfung der Prüfsumme der 512-Byte-TAR-Kopfzeile.
Durch Ausschließen dieses Tests kann eine detailliertere Inhaltsbeschreibung durch
Verwendung der weichen magischen Methode erhalten werden.
text Ein Synonym für »ascii«.
--exclude-quiet
Wie --exclude, ignoriert aber Tests, die file nicht kennt. Dies ist zur Kompatibilität mit
älteren Versionen von file gedacht.
--extension
Gibt eine Schrägstrich-getrennte Liste von gültigen Erweiterungen für den gefundenen Dateityp
aus.
-F, --separator Trenner
Verwendet die angegebene Zeichenkette als Trenner zwischen Dateiname und den zurückgegebenen
Dateiergebnissen. Standardmäßig »:«.
-f, --files-from Namensdatei
Liest die Liste der zu prüfenden Dateien aus Namensdatei (eine pro Zeile) vor der Argumentenliste
ein. Entweder Namensdatei oder mindestens ein Dateinamenargument muss vorhanden sein; um die
Standardeingabe zu prüfen, verwenden Sie »-« als Dateinamenargument. Bitte beachten Sie, dass
Zeilenumbrüche in Namensdatei entfernt werden und die eingeschlossenen Dateinamen verarbeitet
werden, wenn diese Option angetroffen wird und bevor irgendeine Verarbeitung der weiteren
Optionen erfolgt. Dies ermöglicht es, mehrere Listen von Dateien mit verschiedenen
Befehlszeilenargumenten beim gleichen Aufruf von file zu verarbeiten. Wenn Sie daher den Trenner
setzen wollen, müssen Sie dies tun, bevor Sie die Dateiliste angeben, also “-F @ -f Namensdatei”
statt “-f Namensdatei -F @”.
-h, --no-dereference
Diese Option führt dazu, dass Symlinks nicht gefolgt wird (auf Systemen, die Symlinks
unterstützen). Dies ist die Vorgabe, falls die Umgebungsvariable POSIXLY_CORRECT nicht definiert
ist.
-i, --mime
Führt dazu, dass der Befehl file den MIME-Typ statt der traditionellen und menschenlesbaren
Zeichenketten ausgibt. Daher könnte die Ausgabe »text/plain; charset=us-ascii« statt »ASCII text«
lauten.
--mime-type, --mime-encoding
Wie -i, gibt aber nur das/die angegebene(n) Element(e) aus.
-k, --keep-going
Stoppt nicht beim ersten Treffer, sondern fährt fort. Nachfolgenden Treffern wird die
Zeichenkette »"\012- "« vorangestellt. (Falls Sie einen Zeilenumbruch möchten, siehe die Option
-r.) Das magische Muster mit der höchsten Stärke (siehe die Option -l) kommt zuerst.
-l, --list
Zeigt eine Liste von Mustern und ihren Stärken, absteigend sortiert gemäß magic(5) -Stärke, die
zum Abgleich verwandt wird, an (siehe auch die Option -k).
-L, --dereference
Diese Option führt dazu, dass Symlinks gefolgt wird, wie bei der gleichbenannten Option in ls(1)
(auf Systemen, die symbolische Links unterstützen). Dies ist die Vorgabe, falls die
Umgebungsvariable POSIXLY_CORRECT definiert ist.
-m, --magic-file magische_Dateien
Gibt eine alternative Liste an Dateien und Verzeichnissen an, die Magie enthalten. Dies kann ein
einzelner Eintrag sein oder eine durch Doppelpunkte getrennte Liste. Falls eine kompilierte
magische_Datei zusammen mit einer Datei oder einem Verzeichnis gefunden wird, wird diese
stattdessen verwandt.
-N, --no-pad
Füllt Dateinamen nicht auf, so dass sie an der Ausgabe ausgerichtet sind.
-n, --no-buffer
Erzwingt, dass die Standardausgabe nach jeder Dateiüberprüfung geschrieben wird. Dies ist nur
nützlich, wenn eine Liste von Dateien geprüft wird. Es ist für den Einsatz in Programmen gedacht,
die die Dateitypausgabe aus einer Pipe möchten.
-p, --preserve-date
Versucht auf Systemen, die utime(3) oder utimes(2) unterstützen, die Zugriffszeiten der
analysierten Dateien zu erhalten, um vorzugeben, dass file sie niemals eingelesen hat.
-P, --parameter Name=Wert
Setzt verschiedene Parameterbegrenzungen.
Name Vorgabe Erklärung
bytes 1M maximale Anzahl an Byte, die aus einer Datei gelesen werden sollen
elf_notes 256 maximal zu verarbeitende ELF-Anmerkungen
elf_phnum 2K maximal zu verarbeitende ELF-Programmabschnitte
elf_shnum 32K maximal zu verarbeitende ELF-Abschnitte
elf_shsize 128MB maximal zu verarbeitende ELF-Abschnittsgröße
encoding 65K maximale Anzahl an Byte, um die Kodierung zu bestimmen
indir 50 Rekursionsbegrenzung für indirekte Magie
name 100 verwendet die Zählbegrenzung für Name/Verwendung-Magie
regex 8K Längenbegrenzung für Suchen mit regulären Ausdrücken
-r, --raw
Übersetzt nicht darstellbare Zeichen nicht in \ooo. Normalerweise übersetzt file nicht
darstellbare Zeichen in ihre oktale Darstellung.
-s, --special-files
Normalerweise versucht file, nur Dateien aus den Argumenten zu lesen und deren Typ zu bestimmen,
für die stat(2) meldet, dass sie gewöhnliche Dateien seien. Dies verhindert Probleme, da das
Lesen von besonderen Dateien zu merkwürdigen Konsequenzen führen kann. Durch Angabe der Option -s
wird file auch Dateien aus den Argumenten lesen, die besondere Dateien (block- oder
zeichenorientierte) sind. Dies ist nützlich, um den Dateisystemtyp von Daten in rohen
Plattenpartitionen, die besondere blockorientierte Dateien sind, zu bestimmen. Diese Option führt
auch dazu, dass file die durch stat(2) berichtete Dateigröße ignoriert, da es auf einigen
Systemen die Größe Null für rohe Plattenpartitionen meldet.
-S, --no-sandbox
Auf Systemen, auf denen Libseccomp (https://github.com/seccomp/libseccomp) verfügbar ist,
deaktiviert die Option -S das standardmäßig aktivierte Sandboxing. Diese Option wird benötigt,
damit file externe Entpackprogramme ausführen kann, d.h. wenn die Option -z angegeben und die
eingebauten Entpackprogramme nicht verfügbar sind. Auf Systemen, auf denen Sandboxing nicht
verfügbar ist, hat dieser Schalter keine Auswirkung.
Beachten Sie: Diese Debian-Version von file wurde ohne Unterstützung für Seccomp gebaut. Daher
hat diese Option keine Auswirkung.
-v, --version
Gibt die Version des Programms aus und beendet sich.
-z, --uncompress
Versucht, in komprimierte Dateien zu schauen.
-Z, --uncompress-noreport
Versucht, in komprimierte Dateien zu schauen, berichtet aber nur Informationen über den Inhalt
und nicht die Komprimierung.
-0, --print0
Gibt ein Nullbyte-Zeichen »\0« nach dem Ende des Dateinamens aus. Gut zur Weiterverarbeitung mit
cut(1). Dies betrifft nicht den Trenner, der weiterhin ausgegeben wird.
Falls diese Option mehr als einmal angegeben wird, dann gibt file für jeden Eintrag nur den
Dateinamen, gefolgt von einem Nullbyte, gefolgt von einer Beschreibung (oder ERROR:-Text),
gefolgt von einem zweiten Nullbyte aus.
--help Hilfe ausgeben und beenden.
UMGEBUNGSVARIABLEN
Die Umgebungsvariable MAGIC kann zum Setzen des Standard-Namens der magischen Datei verwandt werden.
Falls diese Variable gesetzt ist, dann wird file nicht versuchen, $HOME/.magic zu öffnen. file fügt
“.mgc” zu dem Wert dieser Variablen hinzu, wo es sinnvoll ist. Die Umgebungsvariable POSIXLY_CORRECT
steuert (auf Systemen, die symbolische Links unterstützen), ob file versuchen wird, symbolischen Links zu
folgen oder nicht. Falls gesetzt, folgt file symbolischen Links, andernfalls nicht. Dies wird auch durch
die Optionen -L und -h gesteuert.
DATEIEN
/usr/share/misc/magic.mgc Kompilierte Vorgabeliste der Magie.
/usr/share/misc/magic Verzeichnis, das die Vorgabe-Magie-Dateien enthält.
EXIT-STATUS
file wird sich mit 0 beenden, falls die Aktion erfolgreich war oder >0, falls ein Fehler angetroffen
wurde. Die folgenden Fehler führen zu Diagnosemeldungen, betreffen aber nicht den Exit-Code des Programms
(wie von POSIX verlangt), außer -E wurde angegeben:
• Eine Datei konnnte nicht gefunden werden.
• Eine Datei konnte aufgrund unzureichender Rechte nicht gelesen werden.
• Der Dateityp konnte nicht bestimmt werden.
BEISPIELE
$ file Datei.c file /dev/{wd0a,hda}
file.c: C program text
file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs), stripped
/dev/wd0a: block special (0/0)
/dev/hda: block special (3/0)
$ file -s /dev/wd0{b,d}
/dev/wd0b: data
/dev/wd0d: x86 boot sector
$ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
/dev/hda: x86 boot sector
/dev/hda1: Linux/i386 ext2 filesystem
/dev/hda2: x86 boot sector
/dev/hda3: x86 boot sector, extended partition table
/dev/hda4: Linux/i386 ext2 filesystem
/dev/hda5: Linux/i386 swap file
/dev/hda6: Linux/i386 swap file
/dev/hda7: Linux/i386 swap file
/dev/hda8: Linux/i386 swap file
/dev/hda9: empty
/dev/hda10: empty
$ file -i Datei.c file /dev/{wd0a,hda}
file.c: text/x-c
file: application/x-executable
/dev/hda: application/x-not-regular-file
/dev/wd0a: application/x-not-regular-file
SIEHE AUCH
hexdump(1), od(1), strings(1), magic(5)
STANDARDKONFORMITÄT
Es wird davon ausgegangen, dass dieses Programm die System-V-Schnittstellendefinition von FILE(CMD)
übererfüllt, soweit das aus der ungenauen Sprache dieser Definition überhaupt erschlossen werden kann.
Das Verhalten ist größtenteils kompatibel zu dem des Programms gleichen Namens aus System V. Diese
Version kennt allerdings mehr Magie, daher wird es in vielen Fällen andere (allerdings genauere) Ausgabe
erstellen.
Der einzige deutliche Unterschied zwischen dieser Version und System V ist, dass diese Version jeden
Leerraum als Trenner betrachtet, so dass Leerzeichen in Musterzeichenketten maskiert werden müssen. So
würde zum Beispiel
>10 string language impress (imPRESS data)
in einer bestehenden Magie-Datei wie folgt geändert werden müssen:
>10 string language\ impress (imPRESS data)
Falls eine Musterzeichenkette einen Rückwärtsschrägstrich enthält, muss dieser zusätzlich maskiert
werden. So würde zum Beispiel
0 string \begindata Andrew Toolkit document
in einer bestehenden Magie-Datei wie folgt geändert werden müssen:
0 string \\begindata Andrew Toolkit document
SunOS von Sun Microsystems ab Version 3.2 enthält einen Befehl file, der von dem aus System V abgeleitet
ist, aber Erweiterungen enthält. Diese Version unterscheidet sich geringfügig von dem von Sun. Sie
enthält die Erweiterung des Operators »&«, der beispielsweise wie folgt verwandt wird:
>16 long&0x7fffffff >0 not stripped
SICHERHEIT
Auf Systemen, auf denen Libseccomp (https://github.com/seccomp/libseccomp) verfügbar ist, wird file die
Systemaufrufe auf nur die für die Aktion des Programms notwendigen einschränken. Diese Durchsetzung
stellt keinen Sicherheitsvorteil dar, wenn file gebeten wird, Eingabedateien durch Aufruf von externen
Programmen mit der Option -z zu dekomprimieren. Um die Ausführung externer Dekomprimierer zu aktivieren,
müssen Sie Sandboxing mittels der Option -S deaktivieren.
MAGISCHES VERZEICHNIS
Die magischen Einträge für File wurden aus verschiedenen Quellen gesammelt, hauptsächlich USENET, und
verschiedene Autoren haben beigetragen. Christos Zoulas (Adresse siehe unten) sammelt zusätzliche oder
korrigiert Einträge für File. Periodisch werden zusammengeführte magische Einträge für File verteilt.
Die Reihenfolge der Einträge in der magischen Datei ist relevant. Abhängig von dem von Ihnen verwandten
System kann die Reihenfolge, in der sie zusammengestellt wurde, inkorrekt sein.
GESCHICHTE
Es gab einen Befehl file in jedem UNIX seit mindestens Research Version 4 (Datum der Handbuchseite:
November 1973). Die System-V-Version führte eine deutliche Änderung ein: die externe Liste von magischen
Typen. Dies verlangsamte das Programm etwas, machte es aber viel flexibler.
Dieses Programm, basierend auf der System-V-Version, wurde von Ian Darwin ⟨ian@darwinsys.com⟩
geschrieben, ohne den Quelltext von irgendjemanden anzuschauen.
John Gilmore überarbeitete den Code umfangreich, er wurde dadurch besser als in der ersten Version. Geoff
Collyer fand eine Reihe von Unzulänglichkeiten und stellte ein paar magische Einträge für File bereit.
Beiträge des »&«-Betreibers Rob McMahon, ⟨cudcv@warwick.ac.uk⟩, 1989.
Guy Harris, ⟨guy@netapp.com⟩, nahm seit 1993 bis heute viele Änderungen vor.
Hauptsächliche Entwicklung und Betreuung seit 1990 bis heute erfolgt durch Christos Zoulas
⟨christos@astron.com⟩.
Verändert durch Chris Lowth ⟨chris@lowth.com⟩, 2000: die Option -i gibt MIME-artige Zeichenketten aus,
verwendet eine alternative magische Datei und interne Logik.
Verändert durch Eric Fischer ⟨enf@pobox.com⟩, Juli 2000, um Zeichencodes zu erkennen und zu versuchen,
die Sprache von nicht-ASCII-Dateien zu bestimmen.
Verändert durch Reuben Thomas ⟨rrt@sc3d.org⟩, 2007-2011, um MIME-Unterstützung zu verbessern, MIME- und
nicht-MIME-Magie zusammenzuführen, für Magie sowohl Verzeichnisse als auch Dateien zu unterstützen, viele
Fehlerkorrekturen anzuwenden, zu aktualisieren und eine Menge an Magie zu korrigieren, das Bausystem zu
verbessern, die Dokumentation zu verbessern und die Python-Anbindung in reinem Python neu zu schreiben.
Die Liste an Beitragenden für das Verzeichnis »magic« (die magischen Dateien) ist zu lang, um sie hier
aufzunehmen. Sie wissen, wer sie sind, vielen Dank! Viele Beitragende sind in den Quelldateien
aufgeführt.
RECHTLICHER HINWEIS
Copyright (c) Ian F. Darwin, Toronto, Canada, 1986-1999. Abgedeckt vom normalen Berkeley Software
Distribution-Copyright; siehe die Datei COPYING in der Quell-Distribution.
Die Dateien tar.h und is_tar.c stammen aus dem gemeinfreien tar(1) -Programm von John Gilmore und
unterliegen nicht der obigen Lizenz.
FEHLER
Bitte senden Sie Fehlerberichte und -korrekturen (auf Englisch) an die Fehlerdatenbank unter
https://bugs.astron.com/ oder die Mailingliste unter ⟨file@astron.com⟩ (besuchen Sie zum Abonnieren
https://mailman.astron.com/mailman/listinfo/file).
OFFENE PUNKTE
Korrektur der Ausgabe, so dass nicht an allen Stellen Überprüfungen auf die Schalter MIME und APPLE
erfolgen müssen und die eigentliche Ausgabe nur an einer Stelle erfolgt. Dafür wird ein Design benötigt.
Vorschlag: mögliche Ausgaben in eine Liste schieben, dann den zuletzt geschobenen (hoffentlich den
konkretesten) Wert am Ende herausnehmen oder die Vorgabe nehmen, falls die Liste leer ist. Dies sollte
die Ausgabe nicht verlangsamen.
Die Handhabung von MAGIC_CONTINUE und die Ausgabe von \012- zwischen Einträgen ist plump und kompliziert;
umschreiben und zentralisieren.
Ein Teil der Kodierungslogik ist in encoding.c hartkodiert und könnte in die magischen Dateien verschoben
werden, wenn wir eine !:charset-Notierung hätten.
Weiter alle magischen Fehler beheben. Die Fehlerdatenbank von Debian ist eine gute Quelle.
Speichern von beliebig langen Zeichenketten, beispielsweise für %s-Muster, so dass sie ausgegeben werden
können. Debian-Fehler #271672 korrigieren. Dies kann durch Zuweisung von Zeichenketten in eine
Zeichenkettensammlung am Ende der magischen Datei erfolgen und anschließender Umwandlung aller
Zeichenkettenzeiger in relative Versätze aus der Zeichenkettensammlung.
Eine Sytax für relative Versätze nach der aktuellen Stufe hinzfügen (Debian-Fehler #466037).
»file -ki« zum Laufen bringen, d.h. mehrere MIME-Typen zu übergeben.
Eine ZIP-Bibliothek zu übergeben, so dass in Office2007-Dokumente geschaut werden kann, um weitere
Details über ihren Inhalt auszugeben.
Eine Option hinzuzufügen, um URLs für die Quellen der Dateibeschreibungen auszugeben.
Skript-Suchen kombinieren und eine Möglichkeit hinzufügen, ausführbare Namen auf MIME-Typen abzubilden
(z.B. einen magischen Wert für !:mime zu haben, der dazu führt, dass die enstehende Zeichenkette aus
einer Tabelle nachgeschlagen wird). Dies würde vermeiden, die gleiche Magie mehrfach für jeden neuen
Skript-Interpreter hinzuzufügen.
Wenn ein Datei-Deskriptor verfügbar ist, kann der Puffer übersprungen und angepasst werden, statt der
momentan eingesetzten, zusammengebastelten Pufferverwaltung.
»name« und »use« korrigieren, so dass sie bei der Kompilierung auf Konsistenz prüfen (doppelte »name«,
»use«, die auf nicht definierte »name« zeigen). »name« / »use« effizienter machen, indem eine sortierte
Liste von Namen erhalten wird. ^ besonders behandeln, um die Bytereihenfolge im Auswerteteil umzustellen,
so dass er nicht maskiert werden muss und dies dokumentieren.
Falls der intern in der Datei angegebene Versatz die Puffergröße überschreitet (Variable HOWMANY in
file.h), dann wird nicht zu dem Versatz gesprungen, sondern aufgegeben. Es wäre besser, wenn die
Pufferverwaltung greifen würde, sobald der Dateideskriptor verfügbar ist, so dass ein Suchen innerhalb
der Datei möglich ist. Es muss allerdings Vorsicht walten gelassen werden, da dies Leistungs- und daher
Sicherheits-Auswirkungen hat, da dadurch alles mögliches durch wiederholtes Suchen verlangsamt werden
kann.
Es gibt jetzt Unterstützung für das Vorhalten getrennter Puffer und dem Einsatz von Versätzen vom Ende
der Datei, allerdings benötigt die interne Pufferverwaltung weiterhin eine Überarbeitung.
VERFÜGBARKEIT
Sie können die neuste Version des ursprünglichen Autors mittels anonymen FTP im Verzeichnis
/pub/file/file-X.YZ.tar.gz auf ftp.astron.com erhalten.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3:
https://www.gnu.org/licenses/gpl-3.0.html oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE
HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org .
Debian 7. April 2024 FILE(1)