特定のディレクトリに関する情報を取得する必要があります。基本的に、小型、中型、および大規模ファイル間の相関関係を知る必要があります。
私はこれを思い出しました:
for i in K M G; do
printf $i
du -h /usr/opt |
awk '{print $1}' |
grep ${i}$ |
wc -l
done | tee /stat.out
その後、結果に基づいてすべての数値を加算し、合計を減算して1k未満のファイル数を取得します。 (ソースファイルだからたくさんあると思います)
とにかく、この方法は小さなディレクトリに役立ちます。実際、非常に大きなディレクトリ(1Teraを超えると予想)があり、ファイルの配布がわかりません。これらすべてのファイルを個人用リポジトリにコピーする必要があり、コピーにかかる時間を提供する必要があります。
私は次のようにするつもりです。
find pwd |xargs ls -lph |awk '{print $5}'
しかし、何を入れるべきか、それとも別のアプローチを取るべきかわかりません。
ベストアンサー1
GNU find(組み込みのLinuxまたはCygwin)にアクセスできる場合は、find
ファイルサイズを印刷して出力を後処理して、awk
各サイズをカテゴリ別にソートし、カテゴリsort
別にグループ化するか、結果をきれいに印刷します。それは次のとおりです。uniq
awk
sed
find /usr/opt -type f -printf '%s\n' |
awk '{
if ($1 ~ /^[2-9]......../) { print "3 G" }
else if ($1 >= 1073741824) { print "3 G" }
else if ($1 >= 1048576) { print "2 M" }
else if ($1 >= 1024) { print "1 k" }
else if ($1 >= 1) { print "0" }
}' |
sort | uniq -c |
awk '{print $1 " files are in the " $3 "B range"}'