系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

rd

删除空目录或整棵目录树,可跳过删除确认。

补充说明

rd(同 rmdir)删除目录。默认只能删空目录;加 /s 删除指定目录及其所有子目录和文件,再加 /q 跳过确认。它适合清理构建产物、临时目录和已确认无用的旧目录。目录里有隐藏或系统文件也算“非空”,必须先处理属性或用 /s。

边界:rd 只删目录,删文件用 del;删除不进回收站。它不能删除当前目录或当前目录的祖先,必须先在别处落脚。现代 Windows 的 rd(含 /s)把目录符号链接和 junction 当作重解析点删除,只去掉链接本身,不递归目标;但 del <目录链接> 会把链接当目录并删除目标里的文件,两种命令不要混用。

Windows 10/11 与 Server 2016+ 的 rd 行为基本一致。CMD 的 rd 是内部命令;PowerShell 中 rd/rmdir 是 Remove-Item 的别名,没有 /s、/q 开关,递归要 -Recurse,强制要 -Force。

影响范围 / 先备份 / 如何回滚:rd /s 会删除指定目录及其全部内容,/q 不再确认,且不经过回收站。执行前先用 dir /S /A 核对路径,把重要数据复制到另一块盘或用卷影副本备份;误删后只能从备份、卷影副本或文件历史恢复,停止写入后可用恢复工具尝试,不能依赖回收站。

常用示例

# 1. 删除一个已清空的目录
C:\> rd C:\temp\empty

# 2. 递归删除旧构建目录,逐项确认
C:\> rd /s C:\temp\oldbuild

# 3. 无人值守清理,删除整棵树且不确认
C:\> rd /s /q C:\temp\oldbuild

# 4. 带空格的路径要加引号
C:\> rd "C:\Users\me\AppData\Local\Temp\pkg"

# 5. 先用 if exist 判断,避免脚本因目录不存在而报错
C:\> if exist C:\temp\oldbuild rd /s /q C:\temp\oldbuild

# 6. 删除目录符号链接本身,不碰目标
C:\> rd C:\dev\assets-link

# 7. 删除前用 dir 预演整棵树,确认没有要保留的文件
C:\> dir /S /A C:\temp\oldbuild

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. rd /s 删除的内容能从回收站恢复吗?应该靠什么恢复?
  2. 目录里有隐藏文件时,为什么 rd C:\data 报“目录不是空的”?
  3. 删除目录符号链接应该用 rd 还是 del?为什么?
答案
  1. 不能,rd 不进回收站;靠备份、卷影副本、文件历史或停止写入后的恢复工具。
  2. 隐藏和系统文件也算目录内容,必须用 dir /A 才能看见。
  3. 用 rd 删链接本身;del 会把它当目录并删除目标里的文件。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令