web-dev-qa-db-ja.com

最大のディレクトリまたは最大のファイルを見つける方法は?

Linuxでは、ディレクトリの下にある最大のファイルや最大のディレクトリをリストするコマンドを探しています。

36
Eric V

任意のディレクトリから:

du -a | sort -n -r

18
Brent Worden

ncduというユーティリティは、探している情報を提供します。

Sudo apt-get install ncdu

OS Xでは、Homebrewを使用してインストールできます。

brew install ncdu
31
David Pratt

次のコマンドは、1レベルのディレクトリとそのサイズを表示します

du --max-depth = 1/path |並べ替え-r -k1,1n

それらの1つが本当に突出している場合(リストの最後の1つがsort -r)、そのディレクトリでコマンドを再実行し、問題のディレクトリ/ファイルが見つかるまで続行します。

最大のファイルが10個あれば、

/ home -type f -exec du -s {} \;を見つけます。 |ソート-r -k1,1n |頭

29
Marcin

du -sk * |ソート-nr |頭-1

これにより、ディレクトリ内の最大のディレクトリ/ファイルがKBで表示されます。ヘッド値を変更すると、上位のファイル/ディレクトリが上位になります。

4
Sridharpp

この投稿 はあなたを助けるでしょう:

cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10
2
Matz

次のコマンドは、指定された/pathの上位10ファイルを返します

du -a -h/path |ソート-h -r |頭-n 10

読みやすいように-hオプションを使用したい。 dusortの両方に-hが必要です。

2
Jiang

使用する

ls -A | xargs -I artifact du -ms artifact | sort -nr

オプションで、パイプを追加してhead -5

1
Abhishek

Duを使用します。結果を注文するにはこれを試してください:

du | sort -n
0
Heisenbug

次のワンライナーを試してみてください(現在のディレクトリで上位20個の最大ファイルを表示します)。

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

または人間が読めるサイズ:

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

OSX/BSDで正しく動作する2番目のコマンド(sortには-hがないため)、sortcoreutilsからインストールする必要があります。

したがって、これらのエイリアスはrcファイルに含めると便利です(必要なときはいつでも)。

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
0
kenorb