#Bash 的 rm 命令
rm [OPTION]... [FILE]...
功能
删除文件或目录。
类型
可执行文件(/usr/bin/rm),属于 coreutils。
参数
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选项
#示例
删除文件
$ rm file.txt # 删除单个文件
$ rm file1.txt file2.log file3.tmp # 删除多个文件
$ rm *.tmp # 使用通配符
删除目录
$ rm -d dir1 # 删除空目录
$ rm -r dir2 # 递归删除目录
$ rm -rf dir3 # 强制递归删除目录
删除根目录(危险!)
$ 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)