126 lines
3.9 KiB
Groff
126 lines
3.9 KiB
Groff
|
..TH MAGIC FILES "Public Domain"
|
||
|
..\" install as magic.4 on USG, magic.5 on V7 or Berkeley systems.
|
||
|
..SH NAME
|
||
|
magic \- file command's magic number file
|
||
|
..SH DESCRIPTION
|
||
|
The
|
||
|
..IR file (1)
|
||
|
command identifies the type of a file using,
|
||
|
among other tests,
|
||
|
a test for whether the file begins with a certain
|
||
|
..IR "magic number" .
|
||
|
The file
|
||
|
..B /etc/magic
|
||
|
specifies what magic numbers are to be tested for,
|
||
|
what message to print if a particular magic number is found,
|
||
|
and additional information to extract from the file.
|
||
|
..PP
|
||
|
Each line of the file specifies a test to be performed.
|
||
|
A test compares the data starting at a particular offset
|
||
|
in the file with a 1-byte, 2-byte, or 4-byte numeric value or
|
||
|
a string. If the test succeeds, a message is printed.
|
||
|
The line consists of the following fields:
|
||
|
..IP offset \w'message'u+2n
|
||
|
A number specifying the offset, in bytes, into the file of the data
|
||
|
which is to be tested.
|
||
|
..IP type
|
||
|
The type of the data to be tested. The possible values are:
|
||
|
..RS
|
||
|
..IP byte \w'message'u+2n
|
||
|
A one-byte value.
|
||
|
..IP short
|
||
|
A two-byte value (on most systems).
|
||
|
..IP long
|
||
|
A four-byte value (on most systems).
|
||
|
..IP string
|
||
|
A string of bytes.
|
||
|
..RE
|
||
|
..IP test
|
||
|
The value to be compared with the value from the file. If the type is
|
||
|
numeric, this value
|
||
|
is specified in C form; if it is a string, it is specified as a C string
|
||
|
with the usual escapes permitted (e.g. \en for new-line).
|
||
|
..IP
|
||
|
Numeric values
|
||
|
may be preceded by a character indicating the operation to be performed.
|
||
|
It may be
|
||
|
..BR = ,
|
||
|
to specify that the value from the file must equal the specified value,
|
||
|
..BR < ,
|
||
|
to specify that the value from the file must be less than the specified
|
||
|
value,
|
||
|
..BR > ,
|
||
|
to specify that the value from the file must be greater than the specified
|
||
|
value,
|
||
|
or
|
||
|
..BR & ,
|
||
|
to specify that the value is to be AND'ed with the
|
||
|
numeric value before any comparisons are done.
|
||
|
Numeric values are specified in C form; e.g.
|
||
|
..B 13
|
||
|
is decimal,
|
||
|
..B 013
|
||
|
is octal, and
|
||
|
..B 0x13
|
||
|
is hexadecimal.
|
||
|
to specify that any value will match. If the character
|
||
|
is omitted, it is assumed to be
|
||
|
..BR = .
|
||
|
..IP
|
||
|
For string values, the byte string from the
|
||
|
file must match the specified byte string.
|
||
|
The operators =, < and > (but not &) can be applied to strings.
|
||
|
The length used for matching is that of the string argument
|
||
|
in the magic file.
|
||
|
..IP message
|
||
|
The message to be printed if the comparison succeeds. If the string
|
||
|
contains a
|
||
|
..IR printf (3S)
|
||
|
format specification, the value from the file (with any specified masking
|
||
|
performed) is printed using the message as the format string.
|
||
|
..PP
|
||
|
Some file formats contain additional information which is to be printed
|
||
|
along with the file type. A line which begins with the character
|
||
|
..B >
|
||
|
indicates additional tests and messages to be printed. If the test on the
|
||
|
line preceding the first line with a
|
||
|
..B >
|
||
|
succeeds, the tests specified in all the subsequent lines beginning with
|
||
|
..B >
|
||
|
are performed, and the messages printed if the tests succeed. The next
|
||
|
line which does not begin with a
|
||
|
..B >
|
||
|
terminates this.
|
||
|
..SH BUGS
|
||
|
The formats
|
||
|
..I long
|
||
|
and
|
||
|
..I short
|
||
|
are system-dependant; perhaps they should be specified as a number
|
||
|
of bytes (2B, 4B, etc),
|
||
|
since the files being recognized typically come from
|
||
|
a system on which the lengths are invariant.
|
||
|
..PP
|
||
|
There should be more than one level of subtests,
|
||
|
with the level possibly indicated by
|
||
|
the number of
|
||
|
..B >
|
||
|
at the beginning of the line.
|
||
|
..SH SEE ALSO
|
||
|
..IR file (1)
|
||
|
\- the command that reads this file.
|
||
|
..\"
|
||
|
..\" From: guy@sun.uucp (Guy Harris)
|
||
|
..\" Newsgroups: net.bugs.usg
|
||
|
..\" Subject: /etc/magic's format isn't well documented
|
||
|
..\" Message-ID: <2752@sun.uucp>
|
||
|
..\" Date: 3 Sep 85 08:19:07 GMT
|
||
|
..\" Organization: Sun Microsystems, Inc.
|
||
|
..\" Lines: 136
|
||
|
..\"
|
||
|
..\" Here's a manual page for the format accepted by the "file" made by adding
|
||
|
..\" the changes I posted to the S5R2 version.
|
||
|
..\"
|
||
|
..\" Modified for Ian Darwin's version of the file command.
|
||
|
..\" @(#)$Header: /cvsroot/src/usr.bin/file/Attic/magic.5,v 1.1.1.1 1993/03/21 09:45:37 cgd Exp $
|