列出大于 10G 的文件夹,并将使用情况发送给相应所有者

列出大于 10G 的文件夹,并将使用情况发送给相应所有者

在我们的环境中,我们有一个 NFS 挂载,其中包含所有用户主目录。

我想找到主目录大小大于10G的用户并向他们发送通知。我试过:

du -sh * | sort -hr   

这就像一个魅力,但我找不到提取大小> 10 G 的目录的命令。

我尝试过find . -size +10G -exec ls -lhS {} \;,但没有成功。

查找/提取大小大于 10G 的目录的最佳方法是什么?

答案1

这应该可以做到。

其中第一列(大小)超过10gb,输出第二列(目录名称)

du -sk * | awk '$1 > 10485760 { print $2 }'

或者根据要求,以人类可读的形式显示,如下所示。正则表达式确保第 1 列以 G(千兆字节)结尾,并且 substr 部分从第 1 列中删除最后一个字母并查看它是否超过 10。

du -sh * | awk '$1 ~ /G$/ && substr($1,0,length($1)-1) > 10 { print $0 }'

例子:

du -sh *
2.5G    steve
du -sh * | awk '$1 ~ /G$/ && substr($1,0,length($1)-1) > 1 { print $0 }'
2.5G    steve
du -sh * | awk '$1 ~ /G$/ && substr($1,0,length($1)-1) > 3 { print $0 }'
(no output)

相关内容