平均ファイルサイズの計算

平均ファイルサイズの計算

ディレクトリの平均ファイルサイズを計算する便利な1行コードを探しています。

私が望むもの:

すべてのファイルのサイズ/ディレクトリ内のファイル数

ベストアンサー1

GNUを使って次を見つけてください。

find . -type f -printf '%s\n' | awk '{s+=$0}
  END {printf "Count: %u\nAverage size: %.2f\n", NR, s/NR}'

またはディスク使用量の場合:

find . -type f -printf '%b\n' | awk '{s+=$0}
  END {printf "Count: %u\nAverage size: %.2f\n", NR, s*512/NR}'

同じファイルへの複数のハードリンクがある場合、ディスク使用量は複数回カウントされます。

上記は、シンボリックリンクやディレクトリ、その他の特殊ファイルではなく、一般ファイルのみを計算します。隠しファイルが含まれています。

組み込み機能と同じzsh

zmodload -i zsh/stat
count() {zstat -Hs -- $REPLY; ((size+=$s[size], count++, 0))}
size=0 count=0
**/*(oNDN.+count)
print -f "Count: %s\nAverage size: %.2f\n" $count $(($size./count))

おすすめ記事