file - determine file type
file [-h] [-m mfile] [-f ffile] file...
file [-h] [-m mfile] -f ffile
file -c [-m mfile]
The file utility performs a series of tests on each file
supplied by file and, optionally, on each file listed in
ffile in an attempt to classify it. If the file is not a
regular file, its file type is identified. The file types
directory, FIFO, block special, and character special are
identified as such. If the file is a regular file and the
file is zero-length, it is identified as an empty file.
If file appears to be a text file, file examines the first
512 bytes and tries to determine its programming language.
If file is an executable a.out, file prints the version
stamp, provided it is greater than 0. If file is a symbolic
link, by default the link is followed and file tests the
file to which the symbolic link refers.
By default, file will try to use the localized magic file
/usr/lib/locale/locale/LC_MESSAGES/magic, if it exists, to
identify files that have a magic number. For example, in the
Japanese locale, file will try to use
/usr/lib/locale/ja/LC_MESSAGES/magic. If a localized magic
file does not exist, file will utilize /etc/magic. A magic
number is a numeric or string constant that indicates the
file type. See magic(4) for an explanation of the format of
If file does not exist, cannot be read, or its file status
could not be determined, it is not considered an error that
affects the exit status. The output will indicate that the
file was processed, but that its type could not be deter-
The following options are supported:
-c Checks the magic file for format errors. For reasons
of efficiency, this validation is normally not carried
-h Does not follow symbolic links.
ffile contains a list of the files to be examined.
Uses mfile as an alternate magic file, instead of
The following operands are supported:
file A path name of a file to be tested.
See largefile(5) for the description of the behavior of file
when encountering files greater than or equal to 2 Gbyte ( 2
Example 1: Binary executable files
Determine if an argument is a binary executable file:
file "$1" | grep -Fq executable &&
printf "%s is executable.\n" "$1"
See environ(5) for descriptions of the following environment
variables that affect the execution of file: LANG, LC_ALL,
LC_CTYPE, LC_MESSAGES, and NLSPATH.
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
file's magic number file
See attributes(5) for descriptions of the following attri-
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| Availability | SUNWcsu |
| CSI | enabled |
| Interface Stability | Standard |
ls(1), magic(4), attributes(5), environ(5), largefile(5),
If the -h option is specified and file is a symbolic link,
file prints the error message:
symbolic link to file
Man(1) output converted with