File: coreutils.info, Node: rm invocation, Next: shred invocation, Prev: mv invocation, Up: Basic operations
11.5 'rm': Remove files or directories
======================================
'rm' removes each given FILE. By default, it does not remove
directories. Synopsis:
rm [OPTION]... [FILE]...
If the '-I' or '--interactive=once' option is given, and there are
more than three files or the '-r', '-R', or '--recursive' are given,
then 'rm' prompts the user for whether to proceed with the entire
operation. If the response is not affirmative, the entire command is
aborted.
Otherwise, if a file is unwritable, standard input is a terminal, and
the '-f' or '--force' option is not given, or the '-i' or
'--interactive=always' option _is_ given, 'rm' prompts the user for
whether to remove the file. If the response is not affirmative, the
file is skipped.
Any attempt to remove a file whose last file name component is '.' or
'..' is rejected without any prompting, as mandated by POSIX.
_Warning_: If you use 'rm' to remove a file, it is usually possible
to recover the contents of that file. If you want more assurance that
the contents are truly unrecoverable, consider using 'shred'.
The program accepts the following options. Also see *note Common
options::.
'-d'
'--dir'
Remove the listed directories if they are empty.
'-f'
'--force'
Ignore nonexistent files and missing operands, and never prompt the
user. Ignore any previous '--interactive' ('-i') option.
'-i'
Prompt whether to remove each file. If the response is not
affirmative, the file is skipped. Ignore any previous '--force'
('-f') option. Equivalent to '--interactive=always'.
'-I'
Prompt once whether to proceed with the command, if more than three
files are named or if a recursive removal is requested. Ignore any
previous '--force' ('-f') option. Equivalent to
'--interactive=once'.
'--interactive [=WHEN]'
Specify when to issue an interactive prompt. WHEN may be omitted,
or one of:
* never - Do not prompt at all.
* once - Prompt once if more than three files are named or if a
recursive removal is requested. Equivalent to '-I'.
* always - Prompt for every file being removed. Equivalent to
'-i'.
'--interactive' with no WHEN is equivalent to
'--interactive=always'.
'--one-file-system'
When removing a hierarchy recursively, skip any directory that is
on a file system different from that of the corresponding command
line argument.
This option is useful when removing a build "chroot" hierarchy,
which normally contains no valuable data. However, it is not
uncommon to bind-mount '/home' into such a hierarchy, to make it
easier to use one's start-up file. The catch is that it's easy to
forget to unmount '/home'. Then, when you use 'rm -rf' to remove
your normally throw-away chroot, that command will remove
everything under '/home', too. Use the '--one-file-system' option,
and it will warn about and skip directories on other file systems.
Of course, this will not save your '/home' if it and your chroot
happen to be on the same file system.
'--preserve-root'
Fail upon any attempt to remove the root directory, '/', when used
with the '--recursive' option. This is the default behavior.
*Note Treating / specially::.
'--no-preserve-root'
Do not treat '/' specially when removing recursively. This option
is not recommended unless you really want to remove all the files
on your computer. *Note Treating / specially::.
'-r'
'-R'
'--recursive'
Remove the listed directories and their contents recursively.
'-v'
'--verbose'
Print the name of each file before removing it.
One common question is how to remove files whose names begin with a
'-'. GNU 'rm', like every program that uses the 'getopt' function to
parse its arguments, lets you use the '--' option to indicate that all
following arguments are non-options. To remove a file called '-f' in
the current directory, you could type either:
rm -- -f
or:
rm ./-f
The Unix 'rm' program's use of a single '-' for this purpose predates
the development of the getopt standard syntax.
An exit status of zero indicates success, and a nonzero value
indicates failure.