GNU/Linux >> Linux の 問題 >  >> Linux

特定のファイル タイプのディスク容量を集計して測定する

find folder1 folder2 -iname '*.txt' -print0 | du --files0-from - -c -s | tail -1


これにより、ディスク容量の使用量が拡張子ごとにバイト単位で報告されます:

find . -type f -printf "%f %s\n" |
  awk '{
      PARTSCOUNT=split( $1, FILEPARTS, "." );
      EXTENSION=PARTSCOUNT == 1 ? "NULL" : FILEPARTS[PARTSCOUNT];
      FILETYPE_MAP[EXTENSION]+=$2
    }
   END {
     for( FILETYPE in FILETYPE_MAP ) {
       print FILETYPE_MAP[FILETYPE], FILETYPE;
      }
   }' | sort -n

出力:

3250 png
30334451 mov
57725092729 m4a
69460813270 3gp
79456825676 mp3
131208301755 mp4

シンプル:

du -ch *.txt

総スペースを表示したいだけの場合は、次のようにします。

du -ch *.txt | tail -1

これを行う方法は次のとおりです(Linuxでは、GNU coreutils duを使用します および Bash 構文)、悪い習慣を回避:

total=0
while read -r line
do
    size=($line)
    (( total+=size ))
done < <( find . -iname "*.txt" -exec du -b {} + )
echo "$total"

現在のディレクトリを除外する場合は、-mindepth 2 を使用します find で .

Bash 構文を必要としない別のバージョン:

find . -iname "*.txt" -exec du -b {} + | awk '{total += $1} END {print total}'

これらは、改行を含むファイル名では適切に機能しないことに注意してください (ただし、スペースを含むものは機能します)。


Linux
  1. Linuxでdfを使用して空きディスク容量を確認します

  2. Linuxでduを使用して使用済みディスク容量を確認する

  3. パフォーマンスを向上させるためのディスクIOの削減

  1. 1つのコマンドで2つのファイルタイプをRsyncしますか?

  2. すべてのサブディレクトリで特定のファイル タイプを tar する方法は?

  3. sys/types.h:そのようなファイルまたはディレクトリはありません

  1. Linux で空きディスク領域を消去するには?

  2. ファイルを削除していますが、ディスク容量はまだいっぱいです

  3. 大量のディスク容量をすぐにいっぱいにする/使い切る方法は?