1 FILE

          FILE is a utility for modifying file attributes.

          FILE   DOES   NOT   convert   a   file.    FILE    changes
     characteristics  of  the  file, and thus VMS' view of the file.
     FILE can be used simply to view the current characteristics  of
     a  file,  or  it  can  be  used to change any of the modifiable
     characteristics.  This  utility  can  be  VERY  dangerous,  and
     should  only  be  used if you have a good understanding of RMS.
     Care should be taken when using this utility.  While it doesn't
     actually  change  the  file  itself, you might consider using a
     backup copy of the file.

          The first thing you should do is to use FILE/OUTPUT=output
     to  generate  a  listing  of the current characteristics of the
     file.  In this way, you will be able to return the file to  its
     original state.
2 Examples

          One common use of FILE, is to 'coerce' a file into being a
     Fixed  512  byte  file, to upload/download the file via kermit.
     For example, given a saveset A.SAV, you could do the following:
          $ FILE/OUTPUT=A.FIX A.SAV/RECORD_SIZE=512/TYPE=FIXED

          You could then transfer the  two  files  A.FIX  and  A.SAV
     using Kermit (it would take two transfers, A.FIX with 'set file
     type text', and A.SAV using 'set file type fixed')

          To turn the file back into its original useable self,  you
     could then do:
          @A.FIX
     This would cause the originally saved characteristics to be put
     back on the file.

          Another common use is to set the Fortran carriage  control
     attribute  so  that a file can be printed with fortran carriage
     control, this can be done as follows:
          $ FILE/OUTPUT=OLD.TMP NETMONTH.* -
          _$ /ATTRIBUTES=(FORTRANCC,NOIMPLIEDCC,NOPRINTCC)
2 parameters

          FILE  takes  one  parameter,  a  filename,  or   list   of
     filenames.  The filenames can be wildcarded.
2 qualifiers

          Most of the qualifiers are "positional".  That means  that
     you  can  either  place  the  qualifier at the beginning of the
     command line, or you can place it after  each  filespec  given.
     If  you  place  it after a filespec, the qualifier only affects
     that specific file (or files, if you use wildcards).

          For example, to "enter" multiple files into  a  directory,
     you could use:
          $ FILE X.X/FID=(xxx,yy,zz),Z.Z/FID=(xxx.yy.zz)
/OUTPUT
       /OUTPUT[=filename]


          This qualifier causes the characteristics of the  file  to
     be   displayed.    Note   that   if   you   are  also  changing
     characteristics the displayed characteristics are the  original
     characteristics.   You can have the output placed in a file, by
     specifying a file name in the OUTPUT clause.  This  is  usefull
     for restoring a file to its original state.  Note that the only
     characteristic not displayed is the OWNER field.
/EXACT
       /[NO]EXACT

          When used with /OUTPUT, this qualifier determines wether a
     complete  file  spec  is  displayed (/EXACT) or wether only the
     filename  and  filetype  will  be  displayed  (/NOEXACT).   The
     default is /NOEXACT.
/FID

          You may use this qualifier to specify the  file  id  of  a
     file  to  enter, with the name passed on the command line.  For
     instance:
          $ FILE GARBAGE.SPOOLED/FID=(1234,56,0)

          This  will  enter  the  file  specified  by  the  file  id
     (1234,56,0)   into  your  current  directory  with  a  name  of
     GARBAGE.SPOOLED.  You may at this point do other things to  the
     file (such as make a backup copy).

          The original intent behind this was to be able to  recover
     temporary   spool   files  (which  don't  get  created  in  any
     directory, and are created "delete on close", thus  having  the
     "marked_for_delete" flag set).
/ATTRIBUTES

          This qualifier determines the record attributes.  You  may
     enter a list of (negatable) attributes:
          [NO]FORTRANCC - Fortran carriage control
          [NO]IMPLIEDCC - implied carriage control
          [NO]PRINTCC - print file carriage control
          [NO]SPAN - records can span blocks
/CHARACTERISTICS

          This qualifier determines the file  characteristics.   You
     may enter a list of (negatable) items:
          [NO]ACL_CORRUPT - File's ACL is corrupt
          [NO]BACKUP - File is to be backed up
          [NO]BEST_TRY_CONTIGUOUS  -  Keep  file  as  contiguous  as
     possible
          [NO]CHARGE - File space is charged against owner
          [NO]CONTIGUOUS - File is contiguous
          [NO]DIRECTORY - File is a directory
          [NO]ERASE_ON_DELETE  -  Erase  contents  of  file   before
     deletion
          [NO]FILE_CORRUPT - File contains bad blocks
          [NO]LOCKED - File is deaccess-locked
          [NO]MARKED_FOR_DELETE - File is marked for deletion
          [NO]READ_VERIFY - Verify all read operations
          [NO]SPOOL - File is an intermediate spool file
          [NO]WRITE_BACK - File may be write-back cached
          [NO]WRITE_VERIFY - Verify all write operations

          Note that not all of these items  are  really  changeable.
     They  are merely included for completeness sake.  For instance,
     you  can  not  set  the  CONTIGUOUS   flag,   nor   clear   the
     MARKED_FOR_DELETE flag apparently.
/PROTECTION

          This qualifier determines the protection of the  file.   A
     protection  is  specified in the same manner as the DCL command
     SET FILE/PROTECTION.
/OWNER

          This qualifier determines the  owner  of  the  file.   Any
     valid  UIC  format  will  be accepted.  There is no support for
     /OWNER=PARENT however.  This requires privilege.  Note that  no
     output is produced for the OWNER field when you use /OUTPUT.  I
     felt that this would be a hindrance to  the  general  usage  of
     /OUTPUT.
/ORGANIZATION

          This qualifier determines the file organization.  You must
     enter one of:
          DIRECT
          INDEXED
          RELATIVE
          SEQUENTIAL
/TYPE

          This qualifier determines the record type.  You must enter
     one of:
          FIXED - fixed record type
          VARIABLE - variable record type
          VFC - variable + fixed control
          STREAM - RMS-11 (DEC traditional) stream format
          LFSTREAM - LF-terminated stream format
          CRSTREAM - CR-terminated stream format
          UNDEFINED - undefined record type
/BUCKET_SIZE

          This qualifier determines the bucket size.
/DEFAULT_EXTEND_QUANTITY

          This qualifier determines the default extend quantity.
/END_OF_FILE_BLOCK

          This qualifier determines the end of file block.
/FIRST_FREE_BYTE

          This qualifier determines the first free byte in  the  end
     of file block.
/HIGHEST_ALLOCATED_BLOCK

          This qualifier determines the highest allocated block.
/GLOBAL_BUFFER_COUNT

          This qualifier determines the global buffer count.
/JOURNAL

          This qulifier determines the type of journaling enabled on
     the file.  you must enter one of:
          [NO]JOURNAL - this is a journal file
          [NO]AIJNL - enable after image journal
          [NO]ATJNL - enable audit trail journal
          [NO]BIJNL - enable before image journal
          [NO]RUJNL - enable recovery unit journal
          [NO]NEVER_RU - file is never accessible in recovery unit
          [NO]ONLY_RU - file is only accessible in recovery unit
/MAXIMUM_RECORD_SIZE

          This qualifier determines the maximum record size.
/RECORD_SIZE

          This qualifier determines the record size.
/DIRECTORY_VERSION_LIMIT

          This qualifier allows you to set  the  default  number  of
     allowable  versions  of  file.   This  is  applicable  only  to
     directories.  Note that 32767 is  equivalent  to  0,  which  is
     equivalent to "unlimited".

          This is equivalent to the command:
          $ SET DIRECTORY/VERSION=n.
/VERSION_LIMIT

          This qualifier allows you to set the number  of  allowable
     versions  of a file.  Note that 32767 is equivalent to 0, or No
     Limit, so to say.

          This is equivalent to the command:
          $ SET FILE/VERSION=n.
/VFC_SIZE

          This qualifier allows you to set the vcf size.
/CREATION_DATE
       /[NO]CREATION_DATE


          This qualifier allows you to set (or clear)  the  creation
     date.
/REVISION_DATE
       /[NO]REVISION_DATE


          This qualifier allows you to set (or clear)  the  revision
     date.
/EXPIRATION_DATE
       /[NO]EXPIRATION_DATE


          This qualifier allows you to set (or clear) the expiration
     date.
/BACKUP_DATE
       /[NO]BACKUP_DATE


          This qualifier allows you to set  (or  clear)  the  backup
     date.
/NUMBER_OF_REVISIONS

          This qualifier allows you to set the number of revisions.
