Unix找到平均文件大小

Ton*_*ony 21 unix size

我有一个目录,有大量的文件,我想找到这些文件的平均文件大小,所以像某些东西,什么什么,一切的平均文件大小满足?

小智 37

我在这里找到了一些东西:http:
//vivekjain10.blogspot.com/2008/02/average-file-size-within-directory.html

要计算Linux系统上目录中的平均文件大小,可以使用以下命令:

ls -l | gawk '{sum += $5; n++;} END {print sum/n;}'
Run Code Online (Sandbox Code Playgroud)

  • @Ernstsson,答案是非常错误的.如果当前目录中有任何目录,则答案会显着丢失.此外,你甚至读过前一个链接上的一个一个问题吗?应该使用`n-1`. (4认同)
  • 应该工作,你试过吗?如果你得到'没有gawk',改为'awk'祝你好运. (2认同)

cns*_*nst 21

Ernstsson答案的简短,一般和递归友好的变体:

find ./ -ls | awk '{sum += $7; n++;} END {print sum/n;}'
Run Code Online (Sandbox Code Playgroud)

或者,例如,如果您想阻止100 KB以上的文件炖平均值:

find ./ -size -100000c -ls | awk '{sum += $7; n++;} END {print sum/n;}'
Run Code Online (Sandbox Code Playgroud)

  • 您使用它的原因很有趣,但却无关紧要。如果我想要平均文件大小(如原始问题中所述),那么我大概不希望目录影响此数字,句号!关于-1,这不仅适合您;还适用于您。领先的答案也是。 (2认同)
  • @ABB,目录只是一个文件,就像常规文件本身一样占用文件系统上的空间;该问题从未指定只需要计算常规文件,因此小心忽略它们是荒谬的;我希望你喜欢给明确回答问题的答案 -1! (2认同)
  • @cnst 我确定你的意思是**倾斜**,而不是**炖**。 (2认同)

Ed *_*eal 5

使用wc -c *得到的所有文件的大小和ls | wc -l获得的文件数量。然后,将彼此除以。