在linux中,如何(快速)获取目录中所有文件的列表 - 使用其文件大小

时间:2014-07-20 16:51:39

标签: linux filesystems ext4

我需要在Linux中获取所有文件的列表及其大小。

文件系统是ext4,在具有很少RAM的机器上通过USB运行

我正在使用的功能就是这些 - 有更好的技术吗?

a) opendir()
b) readdir()
c) stat()

我相信我在使用stat()调用时会受到很大的打击,我没有太多内存而且HD连接了USB

有没有办法说出来

“给我目录中的所有文件以及文件大小?” - 我的猜测是我受到影响因为stat()需要查询inode的大小,导致大量的搜索?

2 个答案:

答案 0 :(得分:0)

不,不是真的。如果您不想点击磁盘,则需要将inode缓存在内存中。这是在这种情况下的权衡。

您可以尝试调整inode_readahead_blksvfs_cache_pressure

答案 1 :(得分:-1)

使用cd转到要获取文件和目录大小的目录,然后键入:

du -sh *

这将为您提供文件和目录的所有大小。 s为每个参数提供总计,h使输出可读。 *表示它将显示该目录的所有内容。

输入man du以了解有关du命令的更多信息(qCtrl-c退出)