如何从大量文件中以递归方式快速查找bash中最大的文件

时间:2020-07-20 12:33:35

标签: bash shell

我在ssh访问的服务器上有很多日志和文件。像所有日志一样,它们会增长。我喜欢监视它,但是目前我只知道磁盘已满,并执行类似的命令

sudo du -sh * #dirs in this dir filesizes
ls -l --sort=size | head -10 #10 biggest files in dir

找出引起问题的文件并解决。它很慢而且手动,或者我有类似的命令

find . -type f -exec du -b {} + | sort -nr | head -n 1

会遍历每个文件,其中有很多文件,因此花费的时间太长。通常,问题是文件系统中只有几个文件比其他文件大得多。

解决方案不必只是一个衬套,甚至可以是shell脚本等。快速完成工作的任何事情都会有所帮助,例如找到超过大小阈值的所有文件也是一个合理的选择。 / p>

最重要的要求:它可以快速运行。

1 个答案:

答案 0 :(得分:2)

du是你的朋友。

$: du $baseDir | sort -rn | head -$worstOffenders

您可能在该sudo上需要一个du