rmdir 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文件与目录命令族(见文件与目录命令族)。它很"挑食"——只删空的。
rmdir(remove directory)删除目录,但有个铁律:目录必须为空,否则拒绝执行。这反而成了它的安全特性——不会误删有内容的目录。
一、基本用法
bash
rmdir empty_dir # 删空目录
rmdir a b c # 一次删多个空目录
rmdir -p a/b/c # 递归删空目录链(c、b、a 都空才删)目录里有任何文件/子目录,
rmdir就报错Directory not empty。想强制删非空目录得用rm -r(见rm),那是另一个量级的危险操作。
二、与 rm -r 的区别
bash
rmdir dir # 目录非空 → 拒绝(安全)
rm -r dir # 不管非空,连锅端(危险,不可恢复)
rmdir是"温和的清洁工":只收走空的房间。rm -r是"推土机":连人带物清掉。日常想安全删目录,先rmdir试探(非空会拦你),确认真要清空再用rm -r。
三、忽略非空错误
bash
rmdir --ignore-fail-on-non-empty dir # 非空也不报错(静默跳过)脚本里批量清理时,用
--ignore-fail-on-non-empty让"非空目录"不触发报错退出,只删掉那些确实空的。
一句话总结
rmdir = 只删空目录(目录非空就拒绝,反而安全);rmdir -p 递归删空链;想删非空目录得用 rm -r(见rm,危险不可恢复);--ignore-fail-on-non-empty 让非空静默跳过。日常更常用 rm -r,rmdir 适合"确认只删空目录"的安全场景。