Content-type: text/html
file [-c] [-f file_list] [-m magic_file] file...
Interfaces documented on this reference page conform to industry standards as follows:
file: XPG4, XPG4-UNIX
Refer to the
standards(5)
reference page for more information
about industry standards and associated tags.
[Compaq] Checks the magic file (/etc/magic
by default) for format errors. This validation is not normally done. File
typing is not done under this option.
[Compaq] Reads
file_list
for a
list of files to examine.
[Compaq] Specifies
magic_file
as the magic file (/etc/magic
by default).
The path name of the file to be tested.
The file command reads input files and performs a series of tests on each one. It then attempts to classify them by type and writes the file types to standard output.
The file command uses the /etc/magic file to identify files that have some sort of a magic number (that is, any file containing a numeric or string constant that indicates its type).
[Compaq] If a file appears to be plain text, file examines the first 512 bytes and tries to determine what kind of text it is. If the first 512 bytes only contain ASCII characters, file returns either ASCII text or English text. If the file contains other characters (that is, European or Asian extended characters), file returns data.
[Compaq] If a file does not appear to be plain text, file attempts to distinguish a binary data file from a text file that contains extended characters. If the file is an a.out file and the version number is greater than zero, file displays the version stamp.
[Compaq] For character special files, part of the identification is information about the devices the system shows as active. In particular, file returns device-specific information such as controller type and unit, device type and unit, and status (offline, write locked, density, errors). The general categories currently implemented are disk, tape, and terminal devices. The supported terminal devices include Local Area Terminals (LAT) but not Local Area Network (LAN) pseudo-terminals.
[Compaq] The following example shows how the file command identifies a device. The output is shown on two lines due to space considerations, but appears on one line on a display.
% file /dev/rrz0c
/dev/rrz0c: character special (8/2) SCSI #0
RZ24 disk #0 (SCSI ID #0)
[Compaq] On Tru64 UNIX systems, the file command recognizes OSF core files. For example: % file core
core: core dump, generated from 'mwm'
[Compaq] The amount and type of information the file command returns can depend on the permissions of the file being queried. For example, most special device files have permissions that allow access only by root and non-root users cannot open them. The file command has to open the device and only root has the proper permissions. Thus, if the file command is issued by a non-root user, it can report only information it can determine without gaining access to the device.
[Compaq] The file command also uses internal tables to decode certain types of files. The following example shows the keywords the file command uses to locate troff, C code, and assembler code.
char *troff[] = { /* new troff intermediate lang */
"x","T","res","init","font","202","V0","p1",0};
char *c[] = {
"int","char","float","double","struct","extern",0};
char *as[] = {
"globl","byte","align","text","data","comm",0};
The file types recognized and identification displayed include those shown in the following table:
If file is a | It is identified as |
directory | directory |
FIFO | fifo |
block special | block special |
character special | character special |
executable binary | executable |
empty regular file | empty |
ar archive library (see ar) | archive |
extended cpio format (see pax) | cpio archive |
extended tar format (see tar) | tar archive |
shell script | commands text |
C-language source | c program text |
FORTRAN source | fortran program text |
[Compaq] The
file
command often does a poor job
of distinguishing C programs, shell scripts, English text, and ASCII text.
In addition, it does not recognize certain programming languages, including
Modula, Pascal, and Lisp.
The following exit values are returned:
Successful completion.
An error occurred.
To display the type of information a file contains, enter: file myfile
Commands: r(1), cpio(1), ls(1), pax(1), tar(1)
Files: magic(4)
Standards: standards(5)
Programmer's Guide