rm - remove directory entries
rm [-f | -i] [-dPRrW] file [...]
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 writing,
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 exist,
do not display a diagnostic message or modify
the exit status
to reflect an error. The -f option overrides
any previous -i
options.
-i Request confirmation before attempting to remove
each file, regardless
of the file's permissions, or whether or
not the standard
input device is a terminal. The -i option
overrides any
previous -f options.
-P Overwrite regular files before deleting them. Files
are overwritten
three times, first with the byte pattern
0xff, then 0x00,
and then 0xff again, before they are deleted. Files
with multiple
links will not be overwritten.
-R Attempt to remove the file hierarchy rooted in each
file argument.
The -R option implies the -d option. If the
-i option is
specified, the user is prompted for confirmation before each directory's
contents are processed (as well as before
the attempt
is made to remove the directory). If the user does
not respond
affirmatively, the file hierarchy rooted in that directory is
skipped.
-r Equivalent to -R.
-W Attempts to undelete the named files. Currently,
this option can
only be used to recover files covered by whiteouts
on union
mounts.
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 consequences
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.
Recursively remove all files contained within the foobar directory hierarchy:
$ rm -rf foobar
Either of these commands will remove the file -f:
$ rm -- -f
$ rm ./-f
rmdir(1), unlink(2), fts(3), symlink(7)
The rm utility differs from historical implementations in
that the -f option
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 ancient
past with an amusing etymology.
The rm utility is almost IEEE Std 1003.2 (``POSIX.2'') compatible, except
that 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.
An rm command appeared in Version 1 AT&T UNIX.
The -P option assumes that the underlying file system is a
fixed-block
file system. UFS is a fixed-block file system; LFS is not.
In addition,
only regular files are overwritten, other types of files are
not.
OpenBSD 3.6 December 5, 1994
[ Back ] |