繁体   English   中英

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

[英]in linux, how to (quickly) get a list of all files in a directory - with their filesize

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

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

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

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

我相信stat()调用会给我很大的打击,我没有太多的内存并且HD已连接USB

有没有办法说

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

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

您可以尝试调整inode_readahead_blksvfs_cache_pressure

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

du -sh *

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM