【问题标题】:Number of free inodes on a partition containing a directory包含目录的分区上的空闲 inode 数
【发布时间】:2012-09-01 21:49:38
【问题描述】:
我有一个在 Linux 下运行的 Python 脚本,它在给定目录中生成大量小文件。但是,许多 Linux 文件系统(如 ext4)在创建时设置了固定数量的 inode,因此我想确保在开始之前可以将这么多文件保存到该目录中。在命令行中,您可以使用df -i /some/directory 看到这个数字。
在 Python 中,您如何找到该目录所在的文件系统上的空闲 inode 数量?
【问题讨论】:
标签:
linux
unix
filesystems
diskspace
inode
【解决方案1】:
这可以使用statvfs 系统调用来完成。在 Python(2 和 3)中,可以使用 os.statvfs 访问它。该调用描述了包含路径指定的文件/目录的文件系统。
所以要获得空闲 inode 的数量,请使用
#import os
os.statvfs('/some/directory').f_favail
此外,有可能某些百分比的 inode 是为 root 用户保留的。如果脚本以 root 身份运行并且您希望允许它使用保留的 inode,请使用 f_ffree 而不是 f_favail。