「du」出力に通常のファイルのみを含めるにはどうすればよいですか?

「du」出力に通常のファイルのみを含めるにはどうすればよいですか?

ディスク使用量に基づいてすべてのファイルを降順にリストしたいと思います。これ:

現在のディレクトリで最大のファイルのトップ10を一覧表示します。du . | sort -nr | head -n10

現在のディレクトリで最大のディレクトリを一覧表示するには、次の手順を実行します。du -s * | sort -nr | head -n10

ただし、すべてディレクトリのみが一覧表示されます。

du出力に通常のファイルのみを含めるにはどうすればよいですか?

ボーナス:

次のduオプション(効果がないように見える)の目的は何ですか? :

 -a, --all             write counts for all files, not just directories 

ベストアンサー1

GNUがある場合は、du通常のファイル(またはディレクトリまたはフィルタリングしたいすべての項目)のリストを送信する(またはzshから引数としてシェルglobを使用):find

find . -type f -print0 | du --files0-from=-
du *(.)  # zsh, regular non-hidden files in the current directory

duデフォルトでは、ディレクトリ内のファイルサイズの合計のみが印刷されますが、次のように個々のファイルサイズを印刷することもできます-a

% du /usr/bin
68  /usr/bin/lou_maketable.d
100 /usr/bin/vendor_perl
464 /usr/bin/core_perl
4   /usr/bin/site_perl
1104024 /usr/bin
% du /usr/bin -a | head
4   /usr/bin/preparetips5
36  /usr/bin/autoupdate
4   /usr/bin/python3.9-config
0   /usr/bin/mkoctfile
60  /usr/bin/zdump
16  /usr/bin/fstopgm
4   /usr/bin/brltty-setcaps
40  /usr/bin/sleep
8   /usr/bin/pnmquantall
20  /usr/bin/extract_mpeg2

おすすめ記事