Linux rmdir 命令 超详细教程
rmdir = remove directory ,专门用来删除空目录 ,不能删除文件、非空目录 ,安全度高于 rm -rf。
一、基本语法
bash
rmdir [选项] 目录名
二、常用选项(最全)
| 选项 | 作用 |
|---|---|
-p / --parents |
递归删除一串连续空目录(级联删除父空目录) |
-v / --verbose |
显示删除过程详情 |
--ignore-fail-on-non-empty |
目录非空时不报错,直接跳过 |
--help |
查看帮助 |
--version |
查看版本 |
三、基础用法(实操示例)
1. 删除单个空目录
bash
# 创建空目录
mkdir test_dir
# 删除空目录
rmdir test_dir
目录里面有文件/子目录 ,执行会报错:
rmdir: 无法删除 'xxx': 目录非空
2. 带 -v 显示删除日志
bash
mkdir dir1
rmdir -v dir1
# 输出:rmdir: 正在删除目录 'dir1'
3. 级联删除空目录 -p(高频用法)
适用于 多层连续空文件夹,一次性从最内层往外层删。
示例:创建多层空目录
bash
mkdir -p a/b/c
目录结构:a → b → c(全部为空)
使用 -p 一键删除整条路径
bash
rmdir -p a/b/c
执行后 a、b、c 全部被删除。
规则:从最后一级 开始删,父目录变空就继续往上删,遇到非空目录立即停止。
搭配 -v 看过程
bash
rmdir -pv a/b/c
四、特殊场景用法
1. 忽略"目录非空"报错
目录非空时不抛出错误、直接跳过:
bash
rmdir --ignore-fail-on-non-empty 目录名
2. 同时删除多个空目录
空格分隔多个目录名:
bash
mkdir d1 d2 d3
rmdir d1 d2 d3
3. 删除带空格的目录
目录名含空格,用引号包裹:
bash
mkdir "my folder"
rmdir "my folder"
五、rmdir 和 rm 区别(重点区分)
-
rmdir
- 只删空目录
- 安全,不会误删文件
- 不能删普通文件
-
rm
rm 文件:删除文件rm -r 目录:递归删除非空目录+所有内容rm -rf:强制递归删除(高危,慎用)
建议:删空目录优先用 rmdir,更安全。
六、常见报错 & 解决
-
报错:目录非空
原因:目录里有文件/子文件夹
解决:先清空目录,或改用
rm -r 目录 -
报错:没有那个文件或目录
原因:目录不存在、路径写错
解决:用
ls核对目录名/路径 -
报错:权限不够
原因:无删除权限
解决:加
sudo rmdir 目录
七、总结速查
- 删单个空目录:
rmdir 目录 - 删多层空目录:
rmdir -p 层级目录 - 看删除详情:
rmdir -v - 批量删空目录:
rmdir 目录1 目录2 - 非空不报错:
rmdir --ignore-fail-on-non-empty