rm 是 "remove"(移除)的缩写,是 Linux 和 macOS 系统中一个基础且强大的命令,用于删除文件或目录。由于删除操作通常是不可逆的,rm 被认为是一个“危险”的命令,使用时需要格外小心。

基本用法
删除文件
这是最简单的用法,直接跟上文件名即可。
# 删除一个名为 test.txt 的文件 rm test.txt
注意:执行这个命令后,系统会直接删除文件,不会有任何确认提示,文件也不会被移到“废纸篓”(Trash Bin)。
删除目录(文件夹)
直接使用 rm 命令删除目录会失败,并提示 is a directory(是一个目录)。
# 尝试删除一个名为 my_folder 的目录,会报错 rm my_folder # 输出:rm: my_folder: is a directory
要删除目录,你需要使用 -r 或 -R 选项(代表 "recursive",递归)。

# 递归地删除 my_folder 目录及其内部所有内容 rm -r my_folder
删除多个文件或目录
你可以一次性删除多个项目,只需将它们的名称用空格隔开。
# 删除 file1.txt, file2.log, 和 my_folder 目录 rm -r file1.txt file2.log my_folder
重要选项(Flags)
rm 命令的强大和危险之处在于它的各种选项。
| 选项 | 全称 | 作用 | 示例 |
|---|---|---|---|
-i |
--interactive=once |
交互式删除,在删除每个文件之前,都会提示你确认(输入 y 或 n)。强烈推荐新手使用! |
rm -i test.txt |
-f |
--force |
强制删除,忽略不存在的文件,并禁止所有提示,当你确定要删除且不想看到任何确认信息时非常有用。 | rm -f file.txt |
-r |
--recursive |
递归删除,用于删除目录以及目录下的所有内容。 | rm -r my_folder |
-v |
--verbose |
详细模式,显示正在删除的文件列表。 | rm -v file1.txt file2.txt |
-d |
--dir |
只删除空目录。 | rm -d empty_folder |
常用组合与示例
安全删除:rm -i
这是最安全的用法,系统会为你确认每一步操作。
# 删除目录前,会一个一个地询问你是否要删除 rm -r -i my_folder # 输出: # rm: descend into directory 'my_folder'? y # rm: remove regular empty file 'my_folder/file1.txt'? y # rm: remove regular empty file 'my_folder/file2.txt'? y # rm: remove directory 'my_folder'? y
强制删除:rm -f
当你知道某个文件不存在,但不想看到错误提示时,或者你想绕过 -i 的保护时使用。

# file.txt 不存在,rm file.txt 会报错,但 rm -f file.txt 不会 rm -f file.txt
最危险的组合:rm -rf
-rf 是 -r 和 -f 的组合,意思是“递归地、强制地删除”。
- 递归 (
-r):删除目录及其所有内容。 - 强制 (
-f):不进行任何确认,忽略所有错误。
这个组合可以删除任何东西,一旦执行,无法恢复。请务必在执行前确认你的路径是正确的!
# 危险!会强制删除 my_project 目录及其下所有内容,且没有任何提示 rm -rf my_project
删除隐藏文件或目录
以 开头的文件或目录是隐藏的,删除它们时,需要在文件名前也加上 。
# 删除隐藏文件 .config rm .config # 删除隐藏目录 .cache rm -r .cache
结合通配符使用
通配符 可以匹配任意数量的字符,使用 rm 结合通配符时要极度小心!
# 删除所有 .log 文件 rm *.log # 删除所有以 'temp' 开头的文件 rm temp* # 危险!会删除当前目录下的所有文件和文件夹! # rm -rf *
与 macOS 图形界面的关系
一个非常重要的概念是:rm 命令删除的文件不会进入“废纸篓”。
- Finder 删除:将文件移动到
~/.Trash目录(废纸篓),可以恢复。 rm命令删除:直接从文件系统中移除文件,释放磁盘空间,对于普通硬盘,数据可能仍留在磁盘上,直到被新数据覆盖;但对于 SSD 或闪存,数据可能被更快地擦除。
如何安全地使用 rm?
鉴于 rm 的危险性,这里有一些最佳实践:
-
使用
rm -i:这是防止误删最简单有效的方法,你可以把它设为默认别名(见下文)。 -
先
ls,后rm:在执行rm命令前,先用ls或ls -l确认你要删除的文件或目录。# 想要删除 tmp 目录下的所有东西,先看看里面有什么 ls -l tmp/ # 确认无误后,再执行删除 rm -r tmp/
-
使用
trash命令:macOS 没有内置的trash命令,但你可以通过 Homebrew 安装一个。# 安装 trash-cli brew install trash-cli # 使用 trash 命令删除文件(会进入废纸篓) trash some_file.txt # 永久清空废纸篓 trash-empty
-
创建
rm的安全别名:在你的 Shell 配置文件(如~/.zshrc或~/.bash_profile)中,可以创建一个更安全的rm别名,让它默认带上-i选项。# 打开配置文件 (使用 zsh shell) open -e ~/.zshrc # 在文件末尾添加下面这行 alias rm='rm -i' # 保存文件后,让配置生效 source ~/.zshrc
这样,你以后每次输入
rm,实际上执行的都是rm -i,系统会要求你确认。
| 命令 | 含义 | 风险等级 |
|---|---|---|
rm file.txt |
删除文件 | 中 |
rm -r dir |
删除目录 | 高 |
rm -f file |
强制删除文件(无提示) | 高 |
rm -rf dir |
强制递归删除目录(无提示) | 极高 |
记住这个口诀:rm 要用 i,rf 莫乱提,在不确定的时候,多用 ls 确认,或者安装 trash 命令作为更安全的替代方案。
