Provided by: inn_1.7.2q-46build3_amd64 bug


       fastrm - quickly remove a set of files


       fastrm [ -d ] [ -e ] [ -uN ] [ -sM ] [ -cI ] base_directory


       Fastrm  reads a list of files, one per line, from its standard input and removes them.  If
       a file is not an absolute pathname, it is taken relative to the directory specified on the
       command  line.  The base_directory parameter must be a simple absolute pathname — that is,
       it must not contain any ``/./'' or ``/../'' references.

       Fastrm is designed to be faster than the typical ``| xargs rm''  pipeline.   For  example,
       fastrm will usually chdir(2) into a directory before removing files from it.  If the input
       is sorted, this means that most files to be removed will be simple names.

       Fastrm assumes that its input is valid and that it is safe to just do  an  unlink(2)  call
       for  each item to be removed.  As a safety measure, if fastrm is run by root it will first
       stat(2) the item to make sure that it is not a directory before unlinking it.


       -d     If the ``-d'' flag is used then no files are removed.  Instead a list of the  files
              to  be  removed,  in  debug  form,  is  printed  on the standard output.  Each line
              contains either the current directory of fastrm at the time it would do the unlink,
              and  then the path name it would pass to unlink(2) as two fields separated by white
              space and a ``/'', or the absolute path name (a single field)  of  files  it  would
              unlink using the absolute path name.

       -e     If  the  ``-e''  flag  is used, fastrm will treat an empty input file (stdin) as an
              error.  This is most useful when fastrm is last in a  pipeline  after  a  preceding
              sort(1)  as  if  the sort fails, there will usually be no output to become input of

       -u     If the ``-u'' flag is used, then fastrm makes further assumptions  about  its  work
              environment;  in  particular,  that there are no symbolic links in the target tree.
              This flag  also  suggests  that  it  is  probably  faster  to  reference  the  path
              ``../../../''  rather  than  start  from  the  root and come down.  (Note that this
              probably isn't true on systems  that  have  a  namei  cache,  which  usually  holds
              everything except ``..'').  The optional N is an integer that specifies the maximum
              number of ``..''  segments to use — paths that would use more  than  this  use  the
              absolute  path name (from the root) instead.  If the ``-u'' flag is given without a
              value, ``-u1'' is assumed.

       -s     If the ``-s'' flag is used, then fastrm will perform the unlinks from one directory
              —  that is when a group of files in one directory appear in the input consecutively
              — in the order that the files appear in the directory from which  they  are  to  be
              removed.   The  intent  of  this  flag  is  that on systems that have a per-process
              directory cache, finding files in the directory should  be  faster.   It  can  have
              smaller benefits on other systems.  The optional M is an integer that specifies the
              number of files that must be going to be removed  from  one  directory  before  the
              files  will  be  ordered.   If the ``-s'' flag is given without a value, ``-s5'' is
              assumed.  When the directory reordering is in use fastrm will avoid  attempting  to
              unlink  files  that  it  can't see in the directory, which can speed it appreciably
              when many of the file names have already been removed.

       -c     The ``-c'' flag may be given to instruct fastrm when it should  chdir(2).   If  the
              number  of  files  to  be  unlinked from a directory is at least I then fastrm will
              chdir and unlink the files from in the directory.  Otherwise it will build  a  path
              relative to its current directory.  If ``-c'' is given without the optional integer
              I then ``-c1'' is assumed, which will cause fastrm to always use chdir.  If  ``-c''
              is  not  used  at all, then ``-c3'' is assumed.  Use ``-c0'' to prevent fastrm from
              ever using chdir(2).

       -a -r  There are also ``-a'' and ``-r'' options, which do nothing at all, except allow you
              to say ``fastrm -usa'' ``fastrm -ussr'' or ``fastrm -user''.  These happen to often
              be convenient sets of options to use.


       Fastrm exits with a status of zero if there were no problems, or  one  if  something  went
       wrong.   Attempting  to remove a file that does not exist is not considered a problem.  If
       the program exits with a non-zero status, it is probably a good idea to feed the  list  of
       files into an ``xargs rm'' pipeline.


       This is revision 1.3, dated 1996/10/29.