跳转到内容

rmdir

rmdir(remove directory)用于删除空目录。目录里只要还有东西就拒绝执行 —— 这正是它相对 rm -r 的价值:命令写错了最多失败一次,不会连内容一起删掉。

Terminal window
rmdir [选项] 目录...

只能删目录,删文件用 rm 目录非空、目录不存在、参数是文件,三种情况都会报错并返回非零

选项 说明
-p 删完之后继续往上删变空的父目录(parents)
-v 打印每一个被删掉的目录(verbose)
--ignore-fail-on-non-empty 目录非空时静默跳过,不当作错误

1. 删空目录

Terminal window
rmdir empty
rmdir notempty

输出:

rmdir: failed to remove 'notempty': Directory not empty

2. 逐层往上删

Terminal window
mkdir -p a/b/c
rmdir -p a/b/c

c、b、a 依次删掉,某一层不空就停在那里 和 mkdir -p 正好是一对

3. 批量清理,非空的留着

Terminal window
rmdir --ignore-fail-on-non-empty */

少了这个选项,非空目录会刷一屏报错,整条命令还会返回失败

4. 看起来空的目录删不掉

Terminal window
ls dir # 什么都没有
ls -A dir # .gitkeep
rmdir dir # Directory not empty

隐藏文件也算内容,ls 默认看不见它们,用 ls -A 确认,见 ls