The Porting and Archiving Centre for HP-UX 
 Home
 Catalogue
 FAQ
 What's New?
 

Search for a package

Package name
Description
Author

Search Term

Case Sensitive

 This manual page  documents  version  4.23  of  the  command.   tests  each
 argument  in  an  attempt  to  classify it.  There are three sets of tests,
 performed in this order: filesystem tests, magic number tests, and language
 tests.   The  test  that  succeeds causes the file type to be printed.  The
 type printed will usually contain one of the words (the file contains  only
 printing  characters  and  a  few common control characters and is probably
 safe to read on an terminal), (the file contains the result of compiling  a
 program  in  a  form  understandable to some kernel or another), or meaning
 anything else (data is usually or  non-printable).   Exceptions  are  well-
 known  file  formats  (core  files, tar archives) that are known to contain
 binary data.  When modifying the file or the program itself, make  sure  to
 People  depend  on  knowing that all the readable files in a directory have
 the word printed.  Don't do as Berkeley did and change  to  Note  that  the
 file  is  built  mechanically  from  a  large  number of small files in the
 subdirectory in the source distribution of this  program.   The  filesystem
 tests  are  based  on examining the return from a system call.  The program
 checks to see if the file is empty, or if it's some sort of  special  file.
 Any known file types appropriate to the system you are running on (sockets,
 symbolic links, or named pipes (FIFOs)  on  those  systems  that  implement
 them)  are intuited if they are defined in the system header file The magic
 number tests are used to check for files  with  data  in  particular  fixed
 formats.   The  canonical  example of this is a binary executable (compiled
 program) file, whose format is defined in  and  possibly  in  the  standard
 include  directory.   These  files have a stored in a particular place near
 the beginning of the file  that  tells  the  that  the  file  is  a  binary
 executable,  and which of several types thereof.  The concept of a has been
 applied  by  extension  to  data  files.   Any  file  with  some  invariant
 identifier  at  a small fixed offset into the file can usually be described
 in this way.  The information identifying these  files  is  read  from  the
 compiled magic file or if the compile file does not exist. In addition will
 look in or for magic entries.  If a file does not match any of the  entries
 in  the  magic  file,  it is examined to see if it seems to be a text file.
 ASCII, ISO-8859-x, non-ISO 8-bit extended-ASCII  character  sets  (such  as
 those  used  on  Macintosh and IBM PC systems), UTF-8-encoded Unicode, UTF-
 16-encoded Unicode, and EBCDIC character sets can be distinguished  by  the
 different  ranges  and sequences of bytes that constitute printable text in
 each set.  If a file passes any  of  these  tests,  its  character  set  is
 reported.    ASCII,   ISO-8859-x,   UTF-8,  and  extended-ASCII  files  are
 identified as because they will be mostly readable on nearly any  terminal;
 UTF-16  and  EBCDIC  are  only because, while they contain text, it is text
 that will require translation before it can be  read.   In  addition,  will
 attempt  to  determine  other  characteristics  of text-type files.  If the
 lines of a file are terminated by CR, CRLF, or NEL, instead  of  the  Unix-
 standard  LF,  this  will  be reported.  Files that contain embedded escape
 sequences or overstriking will also be identified.  Once has determined the
 character  set  used  in  a text-type file, it will attempt to determine in
 what language the file is written.  The language tests look for  particular
 strings  (cf  that  can  appear anywhere in the first few blocks of a file.
 For example, the keyword indicates that the file is  most  likely  a  input
 file,  just  as  the  keyword  indicates a C program.  These tests are less
 reliable than the previous two groups, so they  are  performed  last.   The
 language  test  routines  also test for some miscellany (such as archives).
 Any file that cannot be identified as having been written  in  any  of  the
 character  sets listed above is simply said to be ``data''.  Do not prepend
 filenames to output lines (brief mode).  Cause a checking printout  of  the
 parsed  form  of  the magic file.  This is usually used in conjunction with
 the flag to debug a new magic file before installing it.   Write  a  output
 file  that  contains  a  pre-parsed version of the magic file.  Exclude the
 test named in from the list of tests made to determine the file type. Valid
 test  names  are:  Check  for  application  type  (only on EMX).  Check for
 various types of ascii files.  Don't look for, or inside compressed  files.
 Don't  print  elf  details.   Don't look for fortran sequences inside ascii
 files.  Don't consult magic files.  Don't examine tar  files.   Don't  look
 for known tokens inside ascii files.  Don't look for troff sequences inside
 ascii files.  Read the names of the files to  be  examined  from  (one  per
 line)  before  the argument list.  Either or at least one filename argument
 must be present; to test the standard input, use as  a  filename  argument.
 Use the specified string as the separator between the filename and the file
 result returned. Defaults to option causes symlinks not to be followed  (on
 systems   that  support  symbolic  links).  This  is  the  default  if  the
 environment variable is not defined.  Causes the  file  command  to  output
 mime  type  strings  rather  than the more traditional human readable ones.
 Thus it may say rather than In order for this option to work, file  changes
 the  way it handles files recognized by the command itself (such as many of
 the text file types, directories etc), and  makes  use  of  an  alternative
 file.  (See section, below).  Like but print only the specified element(s).
 Don't stop at the first match, keep going.  option causes  symlinks  to  be
 followed,  as  the  like-named  option in (on systems that support symbolic
 links).  This is the  default  if  the  environment  variable  is  defined.
 Specify an alternate list of files containing magic numbers.  This can be a
 single file, or a colon-separated list of files.  If a compiled magic  file
 is  found  alongside,  it  will  be  used instead.  With the or option, the
 program adds to each file name.  Force stdout to be flushed after  checking
 each  file.   This  is  only  useful  if  checking  a list of files.  It is
 intended to be used by programs that want  filetype  output  from  a  pipe.
 Don't  pad  filenames  so  that  they align in the output.  On systems that
 support or attempt to preserve  the  access  time  of  files  analyzed,  to
 pretend  that  never  read them.  Don't translate unprintable characters to
 \ooo.   Normally  translates  unprintable   characters   to   their   octal
 representation.   Normally, only attempts to read and determine the type of
 argument files which reports are ordinary files.  This  prevents  problems,
 because  reading  special files may have peculiar consequences.  Specifying
 the option causes to also read argument files which are block or  character
 special  files.  This is useful for determining the filesystem types of the
 data in raw disk partitions, which are block special  files.   This  option
 also causes to disregard the file size as reported by since on some systems
 it reports a zero size for raw disk partitions.  Print the version  of  the
 program  and  exit.   Try  to  look inside compressed files.  Output a null
 character after the end of the filename. Nice to the output. This does  not
 affect  the  separator  which  is  still printed.  Print a help message and
 exit.  Default compiled list of magic numbers Default list of magic numbers
 Default  compiled list of magic numbers, used to output mime types when the
 option is specified.  Default list of magic numbers, used  to  output  mime
 types  when  the option is specified.  The environment variable can be used
 to set the default magic number file name.  If that variable is  set,  then
 will  not  attempt  to  open  adds  and/or to the value of this variable as
 appropriate.  The environment variable controls (on  systems  that  support
 symbolic  links),  if  will attempt to follow symlinks or not. If set, then
 follows symlink, otherwise it does not. This is also controlled by the  and
 options.   This  program  is  believed  to  exceed  the  System V Interface
 Definition of FILE(CMD), as near  as  one  can  determine  from  the  vague
 language  contained  therein.  Its  behavior  is mostly compatible with the
 System V program of the same name.  This version knows more magic, however,
 so  it  will produce different (albeit more accurate) output in many cases.
 The one significant difference between this version and System  V  is  that
 this  version  treats  any  white  space  as a delimiter, so that spaces in
 pattern strings must be  escaped.   For  example,  >10     string  language
 impress        (imPRESS  data)  in  an existing magic file would have to be
 changed  to  >10     string  language\  impress       (imPRESS   data)   In
 addition,  in  this  version,  if a pattern string contains a backslash, it
 must            be            escaped.              For             example
 0       string          \begindata      Andrew   Toolkit   document  in  an
 existing    magic    file    would    have     to     be     changed     to
 0       string          \\begindata     Andrew   Toolkit   document   SunOS
 releases 3.2 and later from Sun Microsystems include a command derived from
 the  System V one, but with some extensions.  My version differs from Sun's
 only in minor ways.  It includes the extension of the  operator,  used  as,
 for example, >16     long&0x7fffffff >0              not stripped The magic
 file entries have been collected from various sources, mainly  USENET,  and
 contributed  by  various  authors.   Christos  Zoulas  (address below) will
 collect additional or corrected magic file  entries.   A  consolidation  of
 magic  file entries will be distributed periodically.  The order of entries
 in the magic file is significant.  Depending on what system you are  using,
 the order that they are put together may be incorrect.  If your old command
 uses a magic file, keep the old magic file around for  comparison  purposes
 (rename  it  to $ file file.c file /dev/{wd0a,hda} file.c:   C program text
 file:     ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
           dynamically linked (uses shared libs), stripped /dev/wd0a:  block
 special (0/0) /dev/hda: block special (3/0)

 $ file -s /dev/wd0{b,d} /dev/wd0b: data /dev/wd0d: x86 boot sector

 $ file  -s  /dev/hda{,1,2,3,4,5,6,7,8,9,10}  /dev/hda:    x86  boot  sector
 /dev/hda1:    Linux/i386   ext2  filesystem  /dev/hda2:   x86  boot  sector
 /dev/hda3:   x86  boot  sector,   extended   partition   table   /dev/hda4:
 Linux/i386  ext2  filesystem  /dev/hda5:   Linux/i386  swap file /dev/hda6:
 Linux/i386  swap  file  /dev/hda7:    Linux/i386   swap   file   /dev/hda8:
 Linux/i386 swap file /dev/hda9:  empty /dev/hda10: empty

 $  file  -i  file.c  file  /dev/{wd0a,hda}  file.c:        text/x-c   file:
 application/x-executable     /dev/hda:       application/x-not-regular-file
 /dev/wd0a:   application/x-not-regular-file

 There has been a command in every (man page  dated  November,  1973).   The
 System V version introduced one significant major change: the external list
 of magic number types.  This slowed the program down slightly but made it a
 lot  more  flexible.   This  program,  based  on  the System V version, was
 written by Ian Darwin <ian@darwinsys.com> without looking at anybody else's
 source  code.   John Gilmore revised the code extensively, making it better
 than the first version.   Geoff  Collyer  found  several  inadequacies  and
 provided some magic file entries.  Contributions by the `&' operator by Rob
 McMahon, cudcv@warwick.ac.uk, 1989.  Guy Harris, guy@netapp.com, made  many
 changes from 1993 to the present.  Primary development and maintenance from
 1990 to the present by Christos Zoulas (christos@astron.com).   Altered  by
 Chris  Lowth,  chris@lowth.com, 2000: Handle the option to output mime type
 strings and using an alternative magic file and internal logic.  Altered by
 Eric  Fischer  (enf@pobox.com), July, 2000, to identify character codes and
 attempt to  identify  the  languages  of  non-ASCII  files.   The  list  of
 contributors to the "Magdir" directory (source for the file) is too long to
 include here.  You know who you are;  thank  you.   Copyright  (c)  Ian  F.
 Darwin,  Toronto,  Canada,  1986-1999.   Covered  by  the standard Berkeley
 Software Distribution copyright; see the file LEGAL.NOTICE  in  the  source
 distribution.   The files and were written by John Gilmore from his public-
 domain program, and are not covered by the above license.  There must be  a
 better way to automate the construction of the Magic file from all the glop
 in Magdir.  What is it?  uses several  algorithms  that  favor  speed  over
 accuracy,  thus  it  can  be  misled about the contents of text files.  The
 support for text files (primarily for programming languages) is simplistic,
 inefficient  and requires recompilation to update.  Their use of as a field
 delimiter is ugly and makes it hard to edit the files, but  is  entrenched.
 It  might  be  advisable  to allow upper-case letters in keywords for e.g.,
 commands vs man page macros.  Regular expression support  would  make  this
 easy.   The program doesn't grok It should be able to figure by seeing some
 keywords which appear indented at the start of  line.   Regular  expression
 support  would make this easy.  The list of keywords in probably belongs in
 the Magic file.  This could be done by using  some  keyword  like  for  the
 offset  value.  Complain about conflicts in the magic file entries.  Make a
 rule that the magic entries sort based on file offset rather than  position
 within  the  magic  file?   The  program  should  provide  a way to give an
 estimate of a guess is.  We end up removing guesses (e.g. as first 5  chars
 of  file)  because  they  are  not as good as other guesses (e.g. versus ).
 Still, if the others don't pan out, it should be possible to use the  first
 guess.  This  program  is slower than some vendors' file commands.  The new
 support for multiple character codes makes it  even  slower.   This  manual
 page,  and  particularly  this  section,  is  too long.  You can obtain the
 original author's latest version by anonymous FTP on in the directory

 

    
Home | Catalogue | FAQ | What's New? | Contact Us
A service by Connect Internet SolutionsHewlett Packard Logo