Unix 手册阅读 - rmdir.2
rmdir()
函数是命令 rmdir
的底层函数,它可以删除一个空目录。空目录的概念,在 Unix 编程中,是指只包含了 .
和 ..
这两项的目录。调用成功意味着:这个目录在文件系统系统中占用的空间被释放。
目录下有文件,意味着它的链接计数不为 0,也就是说,不是空目录。对这样的目录调用 rmdir()
会报错 ENOTEMPTY。
另外,值得一提的是,就算链接计数到 0 了,如果有进程还打开了这个目录,那么调用函数也会失败,报错 EBUSY。
衍生思考:
- 文件系统节点下明明有
.
和..
两项,为什么还叫空目录呢?不妨将.
和..
看作是进入和离开目录的门的门把手,而非是目录里的文件。 rmdir
为什么这么执着于删除空目录,而把删除递归删除文件这种事情交给rm -r
呢?一个想法是 rmdir …
阅读 Python 文档 - stat 模块
Python stat 模块定义了一些帮助解读 struct stat 结构体的常量和函数。struct stat 结构体可以由 stat, fstat, lstat 这三种操作返回。
我们一般用 ls -l
查看 stat 的信息。
这些常量应该被定义在 <sys/stat.h>
头文件中,例如
S_ISDIR(mode)
- 目录S_ISCHR(mode)
- character special device file (for nocaching device reading)S_ISBLK(mode)
- block special device file (for caching device reading)- 注 …