次のようなファイルパスを含むファイルがあります。
./file1
./dir/file2
./dir3/dir4/fil3
etc
それらすべての合計ファイルサイズを見つけるにはどうすればよいですか? 単一ファイルのファイルサイズを取得するための「du」については知っていますが、ファイルの使用方法がわかりません。
ありがとうございました
次のようなファイルパスを含むファイルがあります。
./file1
./dir/file2
./dir3/dir4/fil3
etc
それらすべての合計ファイルサイズを見つけるにはどうすればよいですか? 単一ファイルのファイルサイズを取得するための「du」については知っていますが、ファイルの使用方法がわかりません。
ありがとうございました
du を使用して、複数のファイルの合計サイズを指定できます
cat file | tr "\n" "\0" | du -ch --files0-from=- | tail -n1
awk を使用してファイル サイズを取得する
cat file | awk '{system("ls -l " $0)}' | awk '{ TOTAL += $5} END { print TOTAL}'
編集: 名前付きオプション--files0-from
は GNU 拡張であるため、この提案されたソリューションは、GNU 以外の coreutils du バージョンでは機能しません。あなたはそれを持っていないようなので、awk
Vivek Goel によって投稿されたバージョンを代わりに試してみてください。
あなたはすでにあなた自身の質問に答えました。使い方du
がカギ。あなたが探している「欠けている」オプションは、マニュアルページにあるこのオプションかもしれません。(マンデュ)
--files0-from=F
ファイル F で指定された NUL で終わるファイル名のディスク使用状況を要約します。F が - の場合、標準入力から名前を読み取ります
使用法は次のようになります。
tr "\n" "\0" <file-list | du --files0-from=-