1 FINDFILE
  Searches   the   disks   for   files   matching    certain
  characteristics.   The  search is performed by reading the
  index files.

  Format:


    FINDFILE disk-name[,...]
2 Parameters

 disk-name

  Specifies a disk to be searched.  The disk must be mounted
  as a FILES-11 Structure Level 2 disk.

  If the disk is a member of a volume set, all of the  disks
  in the set will be searched.
2 Qualifiers

/DIAGNOSTICS

 /DIAGNOSTICS[=filespec]
 /NODIAGNOSTICS (D)

 Specifies where diagnostic output is to be sent.

  If you specify /DIAGNOSTICS  without  a  filename,  output
  will be sent to the same file specified by /OUTPUT.

  If you specified /NOOUTPUT or /OUTPUT without a  filespec,
  diagnostic  output  will  be  sent to the process standard
  output stream or device, specified by SYS$OUTPUT.

  If you specify /NODIAGNOSTICS, diagnostic output  will  be
  suppressed.  This is the default.

  Diagnostics output describes errors  that  findfile  found
  while  trying  to follow backlinks to build full directory
  specifications.  Error messages occur when FINDFILE  can't
  build  a  complete  directory  name.   These  messages may
  indicate minor structure problems with  your  disk.   They
  can also occur if directories are created or deleted while
  FINDFILE is scanning the disk.

/EXCLUDE

 /EXCLUDE=(filename[,...])

 Excludes files with certain names from processing.

  The name must consist only of  the  name,  extension,  and
  version fields.  Wildcarding is permitted.  Omitted fields
  default  to   a   wildcard.    Relative   version   number
  specifications are not permitted.

  If you  specify  only  one  filename,  you  may  omit  the
  parentheses.

/LIST

 /LIST[=filespec]
 /NOLIST (D)

 Specifies where listing output is to be sent.

  If you specify /LIST without a filename,  output  will  be
  sent to FINDFILE.LIS in the current default directory.

  If you specify /NOLIST, output will be  suppressed.   This
  is the default.

  Listing  output  produces  a   list   of   complete   file
  specifications,  including  device  and directory, one per
  line, with no other data.  This output can be easily  used
  by  other  programs.  Files appear in the same order as in
  the standard output.

/MAXSIZE

 /MAXSIZE=size

 Selects  files  with  an  allocation  size  less  than  the
  specified size.

  If this qualifier is omitted, there is no upper  limit  to
  file size.

/MINSIZE

 /MINSIZE=size

 Selects files with an  allocation  size  greater  than  the
  specified size.

  If this qualifier is omitted, there is no lower  limit  to
  file size.

/NOTUIC

 /NOTUIC=(uic[,...])

 Excludes files with certain owner user identification codes
  from processing.

  The  UIC  may  be  specified   in   any   standard   form.
  Wildcarding is permitted.

  If you specify only one UIC, you may omit the parentheses.

/OUTPUT

 /OUTPUT[=filespec] (D)
 /NOOUTPUT

 Specifies where output is to be sent.

  If you specify /OUTPUT without a filename, output will  be
  sent  to  the  process  standard  output stream or device,
  specified by SYS$OUTPUT.  This is the default.

  If you specify /NOOUTPUT, output will be suppressed.

/SORT

 /SORT (D)
 /NOSORT

 Requests sorting of directories and  files.   This  is  the
  default.

  If /NOSORT is specified, directories will be listed  in  a
  "random"  order  and  files  will  be  unsorted within the
  directories.  Files will still be grouped together  within
  a directory.

  Sorted output is easier to read and use, but  there  is  a
  performance penalty.

/STATISTICS

 /STATISTICS[=filespec]
 /NOSTATISTICS (D)

 Specifies where statistics output is to be sent.

  If you specify /STATISTICS without a filename, output will
  be sent to the same file specified by /OUTPUT.

  If you specified /NOOUTPUT or /OUTPUT without a  filespec,
  statistics  output  will  be  sent to the process standard
  output stream or device, specified by SYS$OUTPUT.

  If you specify /NOSTATISTICS, output will  be  suppressed.
  This is the default.

/UIC

 /UIC=uic[,...]

 Selects files according to owner user identification codes.

  The  UIC  may  be  specified   in   any   standard   form.
  Wildcarding is permitted.

  If you specify only one UIC, you may omit the parentheses.

  If this qualifer is omitted, it defaults to [*,*].

2 How_it_works

 How_it_works

 Basically, this program reads the index file on  the  disks
  to    build    its    data    structures.     (That    is,
  [000000]INDEXF.SYS;1) Every file header has all  the  data
  needed to select files.  Each header also has a pointer to
  its parent directory.  This information  can  be  used  to
  build the directory names.

  In more detail, the program  opens  the  index  files  one
  after  another  on  each volume.  It then examines all the
  headers,  using  double  buffering  for  efficiency.   The
  number  of  header  records  examined  is  reported in the
  statistics report as "Headers examined".   Some  of  these
  will  be  uninitialized  or otherwise invalid.  A count of
  valid headers is also in the statistics report.

  Of the valid headers, some are file headers, and some  are
  extension  headers.   The  file  headers  are examined and
  those that match are put in a tree.  Files in the tree are
  indexed  according  to  the FID of their parent directory.
  The number of  parent  directories  used  is  reported  as
  "directories used".

  If  any  file  header  examined  describes  a   directory,
  information  from  it  is placed in a tree that is indexed
  according to the FID's of the directories.

  After the disk is scanned, the output phase  begins.   The
  program traverses the file tree and the uses the directory
  tree to recursively build directory names.  Each record in
  the directory tree contains the FID of its parent.  It has
  to search the tree each time it has to look for  a  parent
  record.   If a previous search has already done this, then
  the  address  of  the  parent  record  is  in  the   tree.
  Statistics  about this are reported as "DID translations",
  which are made up of "DID hits" and "DID misses".

  Sometimes valid translations cannot be made.  The backlink
  pointer  may  refer  to  a  non-existent  directory or the
  linked list of pointers may be too long.  Statistics about
  this   are  reported  as  "Depth  overflows"  or  "Invalid
  backlinks".  They are totaled as "Bad directories."

2 Caveats

 Caveats

 This  program  builds  directory  specifications  from  the
  bottom  up.   It  only  reports  on  the  basis  of  which
  directory is indicated in  the  backlink  portion  of  the
  header.   It  does  not  actually  check  if  the  file is
  actually listed in the directory.  Consequently, it  could
  report incorrectly if the disk structure is in bad shape.

  Use ANALYZE/DISK to check/correct the disk structure.

  FINDFILE does not report on the number of blocks  used  by
  headers   and   extension  headers.   This  results  in  a
  discrepancy  between  what  FINDFILE  reports   and   what
  DISKQUOTA reports.  Sorry.
