| 操作系统/Shell | 命令 | 说明 |
|---|---|---|
| Linux, macOS, Windows (WSL/Cygwin) | rm |
最常用的删除文件命令 |
| Windows (CMD/PowerShell) | del / Remove-Item |
del 是 CMD 的传统命令,Remove-Item 是 PowerShell 的现代命令 |
Linux 和 macOS 中的 rm 命令
rm 是 "remove" 的缩写,是类 Unix 系统(如 Linux 和 macOS)中删除文件和目录的标准命令。

基本用法
a. 删除单个文件
rm filename.txt
filename.txt是一个普通文件,系统会直接删除它。- 如果文件是只读的,
rm默认会询问你是否确认删除。
b. 删除多个文件
rm file1.txt file2.txt file3.log
- 这会同时删除
file1.txt,file2.txt, 和file3.log三个文件。
c. 强制删除,不提示确认
rm -f filename.txt
-f选项代表 "force"(强制)。- 它会忽略不存在的文件,并强制删除所有文件,不会进行任何确认提示,在 Shell 脚本中非常常用,可以避免脚本因交互式提示而中断。
d. 递归删除目录及其内容

rm -r my_directory/
-r选项代表 "recursive"(递归)。- 它会删除
my_directory目录,以及该目录下的所有文件和子目录。 - 重要:在大多数现代 Linux 发行版和 macOS 中,使用
rm -r删除非空目录时,系统会要求你逐个确认每个文件和目录的删除操作,以防止误操作。
强烈推荐:rm -i 选项
-i 选项代表 "interactive"(交互式),它在删除每个文件之前都会询问你是否确认。
rm -i filename.txt
- 输出:
rm: remove regular empty file 'filename.txt'? - 你需要输入
y(yes) 或n(no) 来确认。
最佳实践:
为了避免灾难性的误操作(rm -rf /),强烈建议将 rm 命令创建一个别名,默认启用 -i 选项。
在 ~/.bashrc 或 ~/.zshrc 等配置文件中添加以下行:
alias rm='rm -i'
添加后,重新加载配置文件(例如运行 source ~/.bashrc),之后你每次使用 rm,都会先进行确认。

危险操作:rm -rf
rm -rf my_directory/
- 这是
rm命令中最强大也最危险的组合。 -r:递归删除目录。-f:强制删除,不提示。- 它会无条件地删除整个目录及其所有内容,且没有任何警告!
- *请务必小心使用,特别是在使用通配符(如 `
)时。** 一个经典的错误是rm -rf .或rm -rf /some/path/手误打成了rm -rf /`,后者会尝试从根目录开始删除系统上的所有文件,导致系统崩溃。
Windows 中的删除命令
Windows 提供了两种主要的命令行环境:CMD 和 PowerShell。
a. CMD (命令提示符)
命令:del 或 erase
del 和 erase 是完全等价的,都可以用来删除文件。
基本用法:
del filename.txt
- 删除
filename.txt文件。
删除多个文件:
del *.tmp
- 删除当前目录下所有扩展名为
.tmp的文件,通配符 代表任意长度的任意字符。
删除目录:
del 命令本身不能删除目录,你需要使用 rd (remove directory) 或 rmdir 命令。
rd my_directory
my_directory是空的,会被删除。- 如果目录非空,需要加上
/s /q参数:/s:递归删除,包括目录下的所有文件和子目录。/q:安静模式,不询问确认。
rd /s /q my_directory
- 这相当于 Linux 下的
rm -rf,会静默删除整个非空目录,没有提示,请务必谨慎!
b. PowerShell
命令:Remove-Item
Remove-Item 是 PowerShell 中更现代、更强大的通用删除命令,可以用来删除文件、目录、注册表项等。
基本用法:
Remove-Item filename.txt
- 删除
filename.txt文件,默认情况下,它会提示确认。
强制删除,不提示确认:
Remove-Item filename.txt -Force
-Force参数会覆盖只读属性,并且不显示任何确认提示,这相当于rm -f。
递归删除目录:
Remove-Item my_directory -Recurse -Force
-Recurse:递归删除目录及其内容。-Force:强制删除,不提示。- 这组合起来就是 PowerShell 版本的
rm -rf,威力巨大,使用时请务必小心。
总结与最佳实践
| 场景 | Linux/macOS (rm) |
Windows CMD (del/rd) |
Windows PowerShell (Remove-Item) |
|---|---|---|---|
| 删除单个文件 | rm file.txt |
del file.txt |
Remove-Item file.txt |
| 强制删除文件 | rm -f file.txt |
del /f file.txt |
Remove-Item file.txt -Force |
| 删除空目录 | rm -d dir/ 或 rmdir dir/ |
rd dir/ |
Remove-Item dir/ |
| 删除非空目录 | rm -r dir/ (会提示) 或 rm -rf dir/ (不提示) |
rd /s /q dir/ (不提示) |
Remove-Item dir/ -Recurse -Force (不提示) |
最重要的建议:
-
使用
rm -i(Linux/macOS) 或默认启用确认:养成每次删除前都确认一下的好习惯,尤其是在处理重要数据时。 -
*小心通配符 `
**:在使用rm或del .log之前,先用ls .log或dir .log` 先看一下将要删除的文件列表是否正确。 -
绝对路径 vs 相对路径:尽量使用相对路径(如
rm docs/old.txt)而不是绝对路径(如rm /home/user/docs/old.txt),因为后者一旦写错(例如少打了一个字符),后果不堪设想。 -
善用
trash-cli(Linux/macOS):如果你觉得rm太过危险,可以使用trash-cli工具,它会把文件移动到系统回收站,而不是直接从磁盘删除,提供了“后悔药”。# 安装 (以 Debian/Ubuntu 为例) sudo apt install trash-cli # 使用 trash filename.txt # 查看回收站 trash-list # 清空回收站 trash-empty
