linux基础命令--rmdir 删除空目录

时间:2023-03-08 22:14:48
linux基础命令--rmdir 删除空目录

描述

  • rmdir命令用于删除空目录。

语法

  • rmdir [OPTION]... DIRECTORY...

选项列表

选项(常用的已加粗) 说明
--ignore-fail-on-non-empty 忽略仅仅因为目录而导致的每次失败
-p, --parents
递归删除空目录(仅删除空的目录)。
 -v, --verbose 输出每个处理的目录的详情

实例

  • rmdir -p a/b/c:递归删除空目录a下的所有空目录;如果rmdir -p a/b 会提示失败,因为b目录下还有一个空目录c,此时c目录作为一个“文件”处理。

[root@pople ~]# tree a/
a/
├── a.txt
└── b
└── c 2 directories, 1 file
[root@pople ~]# rmdir a/b/c
[root@pople ~]# tree a/
a/
├── a.txt
└── b 1 directory, 1 file
[root@pople ~]# rmdir a/b/ # 注意此时仅删除了空的目录,a目录因存在文件a.txt,故不会被删除。
[root@pople ~]# tree a/
a/
└── a.txt 0 directories, 1 file
[root@pople ~]# mkdir -p a/b/c
[root@pople ~]# rmdir -p a/b/ # 注意下面的输出已经提示c目录已作为b目录下的文件来处理,所以删除失败。
rmdir: failed to remove ‘a/b/’: Directory not empty
[root@pople ~]# tree a/
a/
└── b
└── c 2 directories, 0 files
[root@pople ~]# rmdir -p a/b/c # 必须补全所有存在空目录的路径,才能删除所有空目录。
[root@pople ~]#

总结:递归删除一个空目录下的所有空目录,必须补全所有存在空目录的路径,才能删除所有空目录;因为此时空目录会被当做一个文件来处理。