FASTRM(1)

FASTRM(1)

faillog Home Page System Administration Index faxabort


NAME
       fastrm - quickly remove a set of files

SYNOPSIS
       fastrm  [  -d ] [ -e ] [ -uN ] [ -sM ] [ -cI ] base_direc-
       tory

DESCRIPTION
       Fastrm reads a list of files, one per line, from its stan-
       dard 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.

OPTIONS
       -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 fastrm.

       -u     If the ``-u'' flag is used, then fastrm makes  fur-
              ther  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 per-
              form 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  sys-
              tems that have a per-process directory cache, find-
              ing 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 with-
              out 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.

EXIT STATUS
       Fastrm exits with a status of zero if there were no  prob-
       lems,  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.

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

faillog Home Page System Administration Index faxabort