国际访客建议访问 Primers 编程伙伴 国际版站点 > Bash 教程 > rm 以获得更好的体验。

# Bash 的 rm 命令

rm [OPTION]... [FILE]...

!subtitle:功能

删除文件或目录。

!subtitle:类型

可执行文件(/usr/bin/rm),属于 coreutils

!subtitle:参数

  • OPTION 选项:

    • -f, --force - 强制删除,不询问,忽略不存在的文件

    • -i - 删除每个文件前进行询问;同 --interactive=always

    • -I - 删除三个以上文件或递归删除前进行询问;同 --interactive=once

    • --interactive[=WHEN] - 何时进行询问;有效值:never, once, always

    • --one-file-system - 递归删除时跳过不同文件系统的目录

    • --no-preserve-root - 不保护 / 目录

    • --preserve-root[=all] - 保护 / 目录,并拒绝删除与其父目录不在同一设备的文件

    • -r, -R, --recursive - 递归删除目录

    • -d, --dir - 删除空目录

    • -v, --verbose - 打印详细信息

    • --help - 显示帮助

    • --version - 显示版本

  • - - 在所有选项之后,同 -i 选项

  • NAME=VALUE - 要设置的环境变量

  • COMMAND - 要执行的命令,如果为空则打印所有环境变量

  • ARG - 命令 COMMAND 的参数,在 shebang 行中需要使用 -S 选项

# 示例

!subtitle:删除文件

$ rm file.txt                       # 删除单个文件
$ rm file1.txt file2.log file3.tmp  # 删除多个文件
$ rm *.tmp                          # 使用通配符

!subtitle:删除目录

$ rm -d dir1                        # 删除空目录
$ rm -r dir2                        # 递归删除目录
$ rm -rf dir3                       # 强制递归删除目录

!subtitle4:删除根目录(危险!)

$ rm -rf --no-preserve-root /       # 危险!千万不要执行此命令!

# 推荐阅读

# 手册

RM(1)                            User Commands                           RM(1)

NAME
       rm - remove files or directories

SYNOPSIS
       rm [OPTION]... [FILE]...

DESCRIPTION
       This  manual  page  documents  the  GNU version of rm.  rm removes each
       specified file.  By default, it does not remove directories.

       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=al‐
       ways  option  is  given,  rm prompts the user for whether to remove the
       file.  If the response is not affirmative, the file is skipped.

OPTIONS
       Remove (unlink) the FILE(s).

       -f, --force
              ignore nonexistent files and arguments, never prompt

       -i     prompt before every removal

       -I     prompt once before removing more than three files, or  when  re‐
              moving  recursively;  less intrusive than -i, while still giving
              protection against most mistakes

       --interactive[=WHEN]
              prompt according to WHEN: never,  once  (-I),  or  always  (-i);
              without WHEN, prompt 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

       --no-preserve-root
              do not treat '/' specially

       --preserve-root[=all]
              do not remove '/' (default); with 'all', reject any command line
              argument on a separate device from its parent

       -r, -R, --recursive
              remove directories and their contents recursively

       -d, --dir
              remove empty directories

       -v, --verbose
              explain what is being done

       --help display this help and exit

       --version
              output version information and exit

       By default, rm does not remove directories.  Use the --recursive (-r or
       -R)  option to remove each listed directory, too, along with all of its
       contents.

       To remove a file whose name starts with a '-', for example '-foo',  use
       one of these commands:

              rm -- -foo

              rm ./-foo

       Note  that  if you use rm to remove a file, it might be possible to re‐
       cover some of its contents, given  sufficient  expertise  and/or  time.
       For  greater  assurance that the contents are truly unrecoverable, con‐
       sider using shred(1).

AUTHOR
       Written by Paul Rubin, David MacKenzie, Richard M.  Stallman,  and  Jim
       Meyering.

REPORTING BUGS
       GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
       Report any translation bugs to <https://translationproject.org/team/>

COPYRIGHT
       Copyright  ©  2023  Free Software Foundation, Inc.  License GPLv3+: GNU
       GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
       This is free software: you are free  to  change  and  redistribute  it.
       There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
       unlink(1), unlink(2), chattr(1), shred(1)

       Full documentation <https://www.gnu.org/software/coreutils/rm>
       or available locally via: info '(coreutils) rm invocation'

GNU coreutils 9.4                 April 2024                             RM(1)
本文 更新于: 2025-11-27 09:38:15 创建于: 2025-11-27 09:38:15