gpt4 book ai didi

linux - 在 linux 中打印文件目录以及存储空间和用户标识

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:10 24 4
gpt4 key购买 nike

我正在尝试按目录打印出用户的详细信息以及总存储消耗组。以下是我到目前为止编写的代码片段。

find $1 -atime +$2 -size +$3M -type f -exec ls -lu --block-size=MB \
{} \; | awk '{print $3, $4, $5, $6, $7, $8, $9}' | awk '
{ a[$1] += $3 }
END {
for (i in a) {
printf "%-15s\t%s\n", i, a[i];
}
}'

上面的代码打印用户 ID 和总存储消耗。

下面是上面代码的示例输出

user1     500MB

但是我也想打印目录信息以及特定目录的存储消耗

所以让我们把输入当作

user1    100 MB   /dir1/dir2/dir3/dir4/file1
user1 100 MB /dir1/dir2/dir3/dir4/file2
user1 150 MB /dir1/dir2/dir3/dir5/file1
user1 150 MB /dir1/dir2/dir3/dir5/file2

我要显示的输出是

user1         200 MB  /dir1/dir2/dir3/dir4
user1 300 MB /dir1/dir2/dir3/dir5

有人可以帮我实现这个吗?

最佳答案

优化find + numfmt解决方案:

find $1 -atime +$2 -size +$3M -type f \
-printf "%-15u\t%kK\t%p\n" | numfmt --field=2 --from=iec --to=iec -d$'\t'

关于linux - 在 linux 中打印文件目录以及存储空间和用户标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48883870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com