Linux "du"コマンド(特定のファイル拡張子のみ)

Linux "du"コマンド(特定のファイル拡張子のみ)

サブフォルダが多いフォルダがあります。フォルダとサブフォルダ内のすべてのファイルを
スキャンし、見つかったすべてのファイルの合計ディスク容量を.pst知る必要があります。.pst

例:

\myfolder\file1.pst 10gb
\myfolder\mysubfolder\file2.pst 2gb
\myfolder\mysubdolder\mysubsubfolder\file3.pst 8gb

Total size of all .pst files: 20gb.

どうすればいいですか?ありがとうございます!

答え1

GNUツールの仮定(Linuxシステムでは合理的な仮定):

find myfolder -type f -name '*.pst' -print0 |
du --human-readable --total --files0-from=-

*.pst名前がパターンと一致するディレクトリ内または下のすべての一般的なファイルを探しますmyfolder。各ファイルのパス名は、空白で区切られたリストに渡されます。duこれは、標準入力からそのファイルを読み取り、ファイルが占める合計サイズを報告します。

答え2

ファイル名のリストを入力として渡すことができますdu(GNUバージョン、つまり組み込まれていないLinuxのバージョンを想定)。

find myfolder -name '*.pst' -print0 | du --files0-from=- -c

あるいは、ファイル名のリストが長すぎない場合は、シェルにコマンドラインからそれを渡すこともできます。これはzshですぐに機能し、shopt -s globstarbashが必要です。

cd myfolder
du -c -- **/*.pst

関連情報