在 DOS(Disk Operating System)或其现代兼容环境(如 Windows 的命令提示符 cmd.exe)中,并没有一个原生的、叫做 rm 的命令。

rm 是类 Unix 系统(如 Linux, macOS)中用于删除文件和目录的核心命令,它的名字来源于 "remove"。
由于很多习惯了 Unix/Linux 命令行的用户会感到 DOS 命令不够直观,因此在一些现代的 Windows 环境或工具中,rm 命令被作为 del 或 rd 命令的“别名”或“包装”提供,以实现更好的兼容性和用户体验。
下面我将从几个方面来解释这个问题:
DOS/Windows 原生的删除命令
在标准的 DOS 和 Windows 命令提示符(CMD)中,删除文件和目录需要使用两个不同的命令:

a) 删除文件:del 或 erase
这两个命令是完全等价的,可以互换使用。
语法:
del [drive:][path]filename [/p] erase [drive:][path]filename [/p]
常用示例:
-
删除单个文件:
(图片来源网络,侵删)del C:\temp\mydocument.txt
这会直接删除
C:\temp\mydocument.txt文件,不会有任何确认提示。 -
删除单个文件(带确认提示):
del C:\temp\mydocument.txt /p
在删除前,系统会提示
Delete (Y/N)?,你需要输入Y确认删除。 -
删除目录下所有
.tmp文件:del *.tmp
这会删除当前目录下所有扩展名为
.tmp的文件。 -
删除目录下所有文件(危险操作!):
del *.*
系统会提示
Are you sure (Y/N)?,确认后删除当前目录下所有文件。
b) 删除目录:rd 或 rmdir
这两个命令也完全等价。rd 是 "remove directory" 的缩写。
重要限制:
rd 命令只能删除空目录,如果目录下还有文件或子目录,删除会失败。
语法:
rd [drive:][path]dirname rmdir [drive:][path]dirname
常用示例:
-
删除一个空目录:
rd C:\temp\empty_folder
-
递归删除非空目录及其所有内容(需要
/s开关):rd C:\temp\my_folder /s
/s开关表示“删除指定目录及其下的所有文件和子目录”。这是一个危险操作,请务必小心! -
递归删除非空目录,并在每一步都进行确认(最安全的用法):
rd C:\temp\my_folder /s /q
/s: 递归删除。/q: "Quiet" 模式,不提示确认。使用此开关时要格外小心!
rm 命令的来源与使用
既然 DOS 没有 rm,那么你在哪里可能会遇到它呢?
a) Git Bash / WSL (Windows Subsystem for Linux)
这是在 Windows 上使用 rm 命令最常见和最推荐的方式,当你安装 Git for Windows 或者启用 WSL 后,你会获得一个强大的类 Unix 环境。
在 Git Bash 或 WSL 中:
rm 命令的行为和 Linux/Unix 完全一样,功能非常强大。
语法:
rm [选项] 文件或目录
常用选项:
-i(interactive): 每次删除前都进行确认。(默认在某些系统配置下开启)-f(force): 强制删除,忽略不存在的文件,无需确认,可以覆盖-i的提示。-r或-R(recursive): 递归地删除目录及其中的所有内容。删除目录必须使用此选项。-d: 删除空目录(rmdir的功能)。-v(verbose): 详细模式,显示被删除的文件名。
常用示例:
-
删除文件:
rm file.txt
-
强制删除文件,不提示:
rm -f file.txt
-
递归删除目录及其所有内容(常用组合):
rm -r my_folder
这会删除
my_folder目录以及它内部的所有东西,在大多数现代系统上,这会递归地提示你是否要删除每个文件和目录,非常安全但有点烦人。 -
递归删除目录且不进行任何提示(危险!):
rm -rf my_folder
-r: 递归-f: 强制- 这是 Unix/Linux 世界中最强大也最危险的命令之一,一旦执行无法恢复,请务必确认你的路径是正确的!
第三方工具(如 rm.exe)
你也可以在网上找到一些独立的 rm.exe 小工具,它们通常被放在你的系统 PATH 路径下,覆盖或补充 del 和 rd 的功能,这些工具的行为通常模仿 Unix 的 rm 命令,提供 -r 和 -f 等选项。
总结与对比
为了更清晰地理解,这里有一个对比表格:
| 功能 | DOS / Windows CMD | Git Bash / WSL (Linux) |
|---|---|---|
| 删除文件 | del filename 或 erase filename |
rm filename |
| 强制删除文件 | del /f filename |
rm -f filename |
| 删除空目录 | rd dirname 或 rmdir dirname |
rmdir dirname 或 rm -d dirname |
| 递归删除目录 | rd /s dirname |
rm -r dirname |
| 递归强制删除目录 | rd /s /q dirname (危险) |
rm -rf dirname (极度危险) |
安全警告
无论使用哪个命令,删除操作都是不可逆的,特别是 del *.*、rd /s 以及 rm -rf 这样的命令,一旦误操作,可能会导致重要数据永久丢失。
- 在执行删除命令前,请务必仔细检查路径和文件名是否正确。
- 如果不确定,可以先使用
dir命令列出要删除的文件列表进行确认。 - 对于重要数据,最好的策略是先移动到回收站或一个临时备份文件夹,确认无误后再彻底删除。
