file, jfile - Determines file type
file [-c] [-f file_list] [-m magic_file] file...
Interfaces documented on this reference page conform to
industry standards as follows:
file: XCU5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
[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).
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).
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 produces 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 filetesting
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 number 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 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.
[Tru64 UNIX] 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/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 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 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 [Toc] [Back]
[Tru64 UNIX] The file command includes the following
enhancements for identifying a text file: In any locale,
the file command uses the presence 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 (codeset-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.
[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.
The following exit values are returned: Successful completion.
An error occurred.
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.
File type database
Commands: ar(1), cpio(1), ls(1), pax(1), tar(1)
Files: magic(4)
Standards: standards(5)
Programmer's Guide
file(1)
[ Back ] |