          file option name ?arg arg ...?
               Operate on a file or a file name.  Name is the name  of
               a   file;  if  it  starts  with  a  tilde,  then  tilde
               substitution is done before executing the command  (see
               the  manual  entry  for  Tcl_TildeSubst  for  details).
               Option indicates what to do with the  file  name.   Any
               unique  abbreviation  for  option  is  acceptable.  The
               valid options are:

               file atime name
                    Return  a  decimal string giving the time at which
                    file name was last accessed.  The time is measured
                    in  the  standard  UNIX  fashion as seconds from a
                    fixed starting time (often January 1,  1970).   If
                    the  file  doesn't exist or its access time cannot
                    be queried then an error is generated.

               file dirname name
                    Return all of the characters in name up to but not
                    including the last slash character.  If there  are
                    no slashes in name then return ``.''.  If the last
                    slash in name is its first character, then  return
                    ``/''.

               file executable name
                    Return 1 if file name is executable by the current
                    user, 0 otherwise.

               file exists name
                    Return  1 if file name exists and the current user
                    has search privileges for the directories  leading
                    to it, 0 otherwise.

               file extension name
                    Return  all  of  the  characters in name after and
                    including the last dot in name.  If  there  is  no
                    dot in name then return the empty string.

               file isdirectory name
                    Return 1 if file name is a directory, 0 otherwise.

               file isfile name
                    Return  1  if  file  name  is  a  regular  file, 0
                    otherwise.

               file mtime name
                    Return  a  decimal string giving the time at which
                    file name was last modified.  The time is measured
                    in  the  standard  UNIX  fashion as seconds from a
                    fixed starting time (often January 1,  1970).   If
                    the file doesn't exist or its modified time cannot
                    be queried then an error is generated.

               file owned name
                    Return  1  if  file  name  is owned by the current
                    user, 0 otherwise.

               file readable name
                    Return  1  if file name is readable by the current
                    user, 0 otherwise.

               file rootname name
                    Return all of the characters in name up to but not
                    including the last ``.'' character  in  the  name.
                    If name doesn't contain a dot, then return name.

               file size name
                    Return  a  decimal  string giving the size of file
                    name in bytes.  If the file doesn't exist  or  its
                    size cannot be queried then an error is generated.

               file stat  namevarName
                    Invoke  the  stat kernel call on name, and use the
                    variable given  by  varName  to  hold  information
                    returned from the kernel call.  VarName is treated
                    as an array variable, and the  following  elements
                    of  that variable are set: atime, ctime, dev, gid,
                    ino, mode, mtime, nlink, size, uid.  Each  element
                    is   a  decimal  string  with  the  value  of  the
                    corresponding   field   from   the   stat   return
                    structure;  see  the  manual  entry  for  stat for
                    details on  the  meanings  of  the  values.   This
                    command returns an empty string.

               file tail name
                    Return  all  of  the  characters in name after the
                    last slash.  If  name  contains  no  slashes  then
                    return name.

               file writable name
                    Return  1  if file name is writable by the current
                    user, 0 otherwise.

               The  file  commands  that  return 0/1 results are often
               used in conditional or looping commands, for example:

                    if {![file exists foo]} then {error {bad file name}}


