file(1)file(1)NAME
file, jfile - Determines file type
SYNOPSISfile [-c] [-f file_list] [-m magic_file] file...
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
file: XCU5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
OPTIONS
[Tru64 UNIX] Checks the magic file (/etc/magic by default) for format
errors. This validation is not normally done. File typing is not done
under this flag. [Tru64 UNIX] Reads file_list for a list of files to
examine. [Tru64 UNIX] Specifies magic_file as the magic file
(/etc/magic by default).
OPERANDS
The path name of the file to be tested.
DESCRIPTION
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).
The file command returns a number of hard and soft errors for character
special files.
[Tru64 UNIX] If you run a file command on /proc file system it pro‐
duces unpredictable results.
[Tru64 UNIX] 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 uses checks as
described in the section titled “Internationalization and Localization
Enhancements” to evaluate the encoding. The jfile command alias, which
enables file-testing logic that is Japanese specific even for the C
locale, is also described in this section.
[Tru64 UNIX] 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 num‐
ber is greater than zero, file displays the version stamp.
[Tru64 UNIX] For character special files, part of the identification
is information about the devices the system shows as active. In partic‐
ular, file returns device-specific information such as controller type
and unit, device type and unit, and status (offline, write locked, den‐
sity, 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-ter‐
minals.
[Tru64 UNIX] The following example shows how the file command identi‐
fies a device. The output is shown on two lines due to space considera‐
tions, but appears on one line on a display. # file /dev/rdisk/dsk17c
/dev/rdisk/dsk17c: character special (19/86) SCSI #1 "RZ26L" disk #4
(SCSI ID #1) (SCSI LUN #0) errors = 1/4
In this example, the device reports 1 soft error and 4 hard errors.
All errors should be logged in the error log.
The following example shows a device with no errors: # file
/dev/rdisk/dsk18c
/dev/rdisk/dsk18c: character special (19/326) SCSI #1 "RZ26L" disk #5
(SCSI ID #2) (SCSI LUN #0)
[Tru64 UNIX] On Tru64 UNIX systems, the file command recognizes OSF
core files. For example: # file core
core: core dump, generated from 'mwm'
[Tru64 UNIX] 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.
[Tru64 UNIX] The file command also uses internal tables to decode cer‐
tain 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 It is identified as
───────────────────────────────────────────────────────────────────────────
directory directory
FIFO fifo
block special block special
compressed crash dump compressed memory image (dump) file
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
audio file (.voc, .iff, .wav) audio
image file (TIFF, GIF, MPEG, JPEG) image
PKZIP format zip archive
GZIP format gzip compressed data
───────────────────────────────────────────────────────────────────────────
Internationalization and Localization Enhancements
[Tru64 UNIX] The file command includes the following enhancements for
identifying a text file: In any locale, the file command uses the pres‐
ence of the byte-order mark to recognize ISO10646/Unicode encoding
(UCS-2 and UCS-4 formats). In any locale, the file command checks
whether the characters in the file are valid for the codeset of the
current locale. When the jfile alias for the file command is used or
if the file command is used in any Japanese locale, the command uses
specialized text-detection logic to determine whether the character
encoding is one of the following: DEC Kanji Japanese EUC Shift JIS
7-bit JIS (for example, ISO-2022-JP) If the text file is not identified
by the ascii text or English text message, the message states whether
the text contains single-byte or multibyte characters and which codeset
the characters belong to. In other words, the message that identifies
the file would use one of the following formats: multi-byte text (code‐
set-name)
single-byte text (codeset-name)
If the file command does not identify the encoding of a text
file, the displayed message is data or International Language
text.
RESTRICTIONS
[Tru64 UNIX] 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.
EXIT STATUS
The following exit values are returned: Successful completion. An
error occurred.
EXAMPLES
To display the type of information a file contains, enter: file myfile
This displays the file type of myfile (directory, data, ASCII
text, C program source, archive, and so on). To display the
type of each file named in a list of file names, enter: file-f
filenames
This displays the type of each file with a name that appears in
filenames. Each file name must appear alone on a line.
To create filenames, enter: ls > filenames
Then edit filenames as desired.
FILES
File type database
SEE ALSO
Commands: ar(1), cpio(1), ls(1), pax(1), tar(1)
Files: magic(4)
Standards: standards(5)
Programmer's Guide
file(1)