coreutils: rm invocation

 
 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 unrecoverable, consider using ‘shred’.
 
    The program accepts the following options.  Also see ⇒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.  See also ‘--preserve-root=all’ to protect command line
      arguments themselves.
 
 ‘--preserve-root [=all]’
      Fail upon any attempt to remove the root directory, ‘/’, when used
      with the ‘--recursive’ option.  This is the default behavior.
      ⇒Treating / specially.  When ‘all’ is specified, reject any
      command line argument that is not on the same file system as its
      parent.
 
 ‘--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.  ⇒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.