RM(1)                      OpenBSD Reference Manual                      RM(1)

NAME
     rm - remove directory entries

SYNOPSIS
     rm [-dfiPRr] file ...

DESCRIPTION
     The rm utility attempts to remove the non-directory type files specified
     on the command line.  If the permissions of the file do not permit writ-
     ing, and the standard input device is a terminal, the user is prompted
     (on the standard error output) for confirmation.

     The options are as follows:

     -d      Attempt to remove directories as well as other types of files.

     -f      Attempt to remove the files without prompting for confirmation,
             regardless of the file's permissions.  If the file does not ex-
             ist, do not display a diagnostic message or modify the exit sta-
             tus to reflect an error.  The -f option overrides any previous -i
             options.

     -i      Request confirmation before attempting to remove each file, re-
             gardless of the file's permissions, or whether or not the stan-
             dard input device is a terminal.  The -i option overrides any
             previous -f options.

     -P      Overwrite regular files before deleting them.  Files are over-
             written three times, first with the byte pattern 0xff, then 0x00,
             and then 0xff again, before they are deleted.  Files with multi-
             ple links will be unlinked but not overwritten.

     -R      Attempt to remove the file hierarchy rooted in each file argu-
             ment.  The -R option implies the -d option.  If the -i option is
             specified, the user is prompted for confirmation before each di-
             rectory (and its contents) are processed.  If the user does not
             respond affirmatively, the file hierarchy rooted in that directo-
             ry is skipped.

     -r      Equivalent to -R.

     The rm utility removes symbolic links, not the files referenced by the
     links.

     It is an error to attempt to remove the files ``.'' or ``..''.  It is
     forbidden to remove the file ``..'' merely to avoid the antisocial conse-
     quences of inadvertently doing something like ``rm -r .*''.

     The rm utility exits 0 if all of the named files or file hierarchies were
     removed, or if the -f option was specified and all of the existing files
     or file hierarchies were removed.  If an error occurs, rm exits with a
     value >0.

EXAMPLES
     Recursively remove all files contained within the foobar directory hier-
     archy:

           $ rm -rf foobar

     Either of these commands will remove the file -f:

           $ rm -- -f
           $ rm ./-f

SEE ALSO
     rmdir(1), unlink(2), fts(3), symlink(7)

STANDARDS
     The rm utility is compliant with the IEEE Std 1003.1-2008 (``POSIX'')
     specification.

     The flags [-dP] are extensions to that specification.

     The rm utility differs from historical implementations in that the -f op-
     tion only masks attempts to remove non-existent files instead of masking
     a large variety of errors.

     Also, historical BSD implementations prompted on the standard output, not
     the standard error output.

     The interactive mode used to be a dsw command, a carryover from the an-
     cient past with an amusing etymology.

     IEEE Std 1003.1-2008 (``POSIX'') requires rm to act like rmdir(1) when
     the file specified is a directory.  This implementation requires the -d
     option if such behavior is desired.  This follows the historical behavior
     of rm with respect to directories.

HISTORY
     An rm command appeared in Version 1 AT&T UNIX.

BUGS
     The -P option assumes that the underlying file system is a fixed-block
     file system, such as UFS.  In addition, only regular files are overwrit-
     ten, other types of files are not.

OpenBSD 4.7                    February 8, 2009                              2
