sha*_*nuo 6 linux command-line find
我想找到/home/目录中显示的磁盘消耗超过500MB的所有用户。以下命令按预期工作。
cd /home/ && du */ -hs
68K ajay/
902M john/
250M websites/
Run Code Online (Sandbox Code Playgroud)
从上面的例子中,只902M john/应该返回。
如何使find命令输出相同的结果?
您不能仅使用 find 来执行此操作,因为 find 作用于单个文件,并且没有累加文件大小的概念。您可以将 find 的输出通过管道传输到另一个工具中,但是既然 du 完成了大部分工作,为什么还要麻烦呢?
du -sm */ | sort -k1,1n | awk '$1 > 500 { sub(/$/, "M", $1); print $0 }'
Run Code Online (Sandbox Code Playgroud)
当输入中包含“人类可读”后缀时,awk 测试会变得混乱,因为您需要去掉尾随的“M”才能进行整数比较。对于输出,我个人会跳过“M”后缀,但这就是要求的。
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |