bea*_*mit 27 filesystems disk-usage inode
我想知道我的文件系统上有多少个文件。我知道我可以做这样的事情:
find / -type f | wc -l
这似乎非常低效。我真正想做的是找到被视为“文件”的唯一 inode 的总数。
有没有更好的办法?
笔记:
我想这样做是因为我正在开发一个文件同步程序,我想做一些统计分析(比如普通用户总共有多少文件与系统上有多少文件)。但是,我不需要知道关于这些文件的任何信息,只需要知道它们存在(路径根本不重要)。我特别想知道每个已挂载的文件系统(及其关联的挂载点)的此信息。
Arc*_*ege 35
--inodes 选项df
将告诉您保留了多少个 inode 供使用。例如:
$ df --inodes / /home
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 3981312 641704 3339608 17% /
/dev/sda8 30588928 332207 30256721 2% /home
$ sudo find / -xdev -print | wc -l
642070
$ sudo find /home -print | wc -l
332158
$ sudo find /home -type f -print | wc -l
284204
Run Code Online (Sandbox Code Playgroud)
请注意,从根 (/) 文件系统返回的条目数find
大于IUsed
根 (/) 文件系统,但 /home返回的条目数较少。但两者都在 0.0005% 以内。出现差异的原因是因为硬链接和类似情况。
请记住,目录、符号链接、UNIX 域套接字和命名管道都是与文件系统相关的“文件”。因此find -type f
,从统计的角度来看,使用flag 是非常不准确的。
归档时间: |
|
查看次数: |
30473 次 |
最近记录: |