linux-l: Magic Numbers
Carsten Paeth
calle at calle.in-berlin.de
Mi Aug 6 15:24:24 CEST 1997
>
> Hallo!
>
> Ich wollte mal horchen, welche M=F6glichkeiten es gibt, Dateien zu
> unterscheiden / erkennen, ohne da=DF man dies aus dem Dateinamen ableitet,
> wie zum Besipiel =FCber "Extensions" unter DOS.
>
> Bei Shell-Skripten soll man ja in der ersten Zeile angeben:
> #!/usr/bin/sh
>
> bei Tcl/Tk, wenn man wish nutzt:
> #!/usr/X11R6/bin/wish -f
#!interpreter arguments
ist eine Standardmethode unter UNIX Scripte auszuführen.
In früheren Version der UNIX-Systeme hat das nur der Shell
ausgeführt. Inzwischen ist es auf allen gängigen UNIX-Systemen
im Kernel eingebaut.
Die aktuelle Version des Kommandos file(1) erkennt die meisten
scripte, da im /etc/magic die passende Angaben stehen.
Ich benutze momentan
ftp://calle.in-berlin.de/pub/unix/usr.bin/file-3.15.tar.gz
+ ftp://calle.in-berlin.de/pub/unix/usr.bin/file-3.15g1-magic-diffs.tgz
>
> Fragen: (1): Welche weiteren Kennungen gibt es / welche Programme nutzen
> diese Kennung?
> (Ich habe mal in bin=E4ren Dateien die Eintragung "ELF"
> gefunden und Perl soll das Konzept wohl auch nutzen.)
Alle Script Interpreter .....
>
> (2): Wie kann man dieses Konzept selber sinnvoll f=FCr eigene
> Anwendungen nutzen?
Eingenen Script Interpreter schreiben :-)
>
> (3): Sind diese Magic-Numbers immer auf die erste Zeile
> der jeweils gekennzeichneten Datei beschr=E4nkt?=20
> =20
Für Interpreteraufrufe, Ja.
> (4): Wie ist so eine Kennung aufgebaut?
#!interpreter arguments
>
> (5): Wieso werden bei manchen Textdateien von "file" falsche
> Ausgaben produziert? Wie kann man eine korrekte Erkennung
> von Textfiles oder LaTeX-Files oder anderen Files erreichen?
Weil die Angaben in /etc/magic fehlen.
>
> (5): Ist eine Angabe wie "#!/usr/X11R6/bin/wish -f" bereits eine
> "Magic Number", weil das Ausrufungszeichen eine bestimmte,
> (die Bedeutung des Kommentarzeichens "#" aufhebende)
> Bedeutung hat, oder sind "magic numbers" wirklich
> Zahlenkennungen?
Der Eintrag in /etc/magic müßte lauten:
0 string #!/usr/X11R6/bin/wish Wish script text
0 string #!\ /usr/X11R6/bin/wish Wish script text
>
> Tsch=FC=DF,
> Oliver
>
>
so double
calle
Mehr Informationen über die Mailingliste linux-l