描述
- 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 ~]#
总结:递归删除一个空目录下的所有空目录,必须补全所有存在空目录的路径,才能删除所有空目录;因为此时空目录会被当做一个文件来处理。