我需要在Linux中获取所有文件的列表及其大小。
文件系统是ext4,在具有很少RAM的机器上通过USB运行
我正在使用的功能就是这些 - 有更好的技术吗?
a) opendir()
b) readdir()
c) stat()
我相信我在使用stat()调用时会受到很大的打击,我没有太多内存而且HD连接了USB
有没有办法说出来
“给我目录中的所有文件以及文件大小?” - 我的猜测是我受到影响因为stat()需要查询inode的大小,导致大量的搜索?
答案 0 :(得分:0)
不,不是真的。如果您不想点击磁盘,则需要将inode缓存在内存中。这是在这种情况下的权衡。
您可以尝试调整inode_readahead_blks
和vfs_cache_pressure
。
答案 1 :(得分:-1)
使用cd
转到要获取文件和目录大小的目录,然后键入:
du -sh *
这将为您提供文件和目录的所有大小。
s
为每个参数提供总计,h
使输出可读。 *
表示它将显示该目录的所有内容。
输入man du
以了解有关du
命令的更多信息(q
或Ctrl-c
退出)