file(1)								      file(1)

  file - Determines file type


  file [-c] [-f file_list] [-m magic_file] file ...

  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).

  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.

  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.

  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.

  The following example shows how the file command identifies a device. Note
  that the output is shown on two lines due to space considerations, but
  appears on one line on a DEC OSF/1 system.

	% file /dev/rrz0c

	/dev/rrz0c: character special (8/2) SCSI #0
	RZ24 disk #0 (SCSI ID #0)

  On DEC OSF/1 systems, the file command recognizes OSF core files.  For

	 % file core

	 core:	 core dump, generated from 'mwm'

  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.

  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 */
       char  *c[] = {
       char  *as[] = {


  -c  Checks the magic file (/etc/magic by default) for format errors.	This
      validation is not normally done.	File typing is not done under this

  -f file_list
      Reads file_list for a list of files to examine.

  -m magic_file
      Specifies magic_file as the magic file (/etc/magic by default).


  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.


   1.  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).

   2.  To display the type of each file named in a list of filenames, enter:
	    file -f filenames

       This displays the type of each file with a name that appears in
       filenames.  Each filename must appear alone on a line.

       To create filenames, enter:
	    ls > filenames

       Then edit filenames as desired.


  /etc/magic File type database


  Programmer's Guide