如何获取文件大小的分布?

Luk*_*404 3 size files

我想知道某个目录下文件大小的分布情况。

请注意:文件大小的分布,而不是目录的大小。这意味着我想知道有 25 个 60 字节的文件、50 个 12587 字节的文件、2 个 57kbytes 的文件,等等。

如果数据可以通过命令行(例如在远程系统上)以易于用于生成图形的格式收集,则加分。

Luk*_*404 5

列出文件,从列表中提取以字节为单位的大小,对其进行排序并计算每个大小的出现次数:

find /my/directory -type f -exec ls -l {} + | cut -d' ' -f5 | sort -n | uniq -c
Run Code Online (Sandbox Code Playgroud)
  • 效率不高
  • 如果有很多文件,最好将中间结果保存在一个临时文件中,将其排序到另一个临时文件,然后“uniq”它
  • 在这里我使用数字排序,因此输出将按文件大小升序排序(很好),但只要相等的行组合在一起,任何排序都可以
  • 将结果通过管道输入awk '{ print $1 "," $2 }'以获得要在您选择的绘图工具中使用的 CSV 文件(即使是电子表格工具也可以)