web-dev-qa-db-ja.com

最大のファイル/ディレクトリを見つめるためのLinuxユーティリティ

私はどのファイル/ディレクトリが最もスペースを占めているかを私に示すためのプログラムを探しています。

74% music
 \- 60% music1
 \- 14% music2
12% code
13% other

私はそれがKDE3で可能であることを知っています、しかし私はむしろそうしたくないです - KDE4かコマンドラインは好まれます。

133
Robert Munteanu

最大10個のファイル(linux/bash)を見つけるには

find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

最大10個のディレクトリを見つけるには:

find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

違いは-type {d:f}だけです。

名前にスペースを含むファイルを処理し、出力に人間が読める形式のファイルサイズを生成します。最後にリストされた最大のファイル。 tailの引数はあなたが見る結果の数です(ここでは10が一番大きい)。

ファイル名の中のスペースを処理するために使用される2つの技法があります。 find -print0 | xargs -0はスペースの代わりにNULL区切り文字を使用し、2番目のxargs -I{}は入力項目を終了するためにスペースの代わりに改行を使用します。

例:

$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

  76M    ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
  76M    ./tmp/projects/onthisday/onthisday.tar.gz
  114M   ./Dropbox/snapshots/weekly.tgz
  114M   ./Dropbox/snapshots/daily.tgz
  114M   ./Dropbox/snapshots/monthly.tgz
  117M   ./Calibre Library/Robert Martin/cc.mobi
  159M   ./.local/share/Trash/files/funky chicken.mpg
  346M   ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi
130
Sean

私はいつもncduを使います。対話的でとても速いです。

200
Daenyth

簡単に見てみましょう。

du | sort -n

最後に大きいものからすべてのディレクトリをリストします。

du --max-depth=1 * | sort -n

またしても、冗長な*を避けます。

du --max-depth=1 | sort -n

現在のディレクトリ内のすべてのディレクトリのうち、最後のディレクトリが最も大きいディレクトリを一覧表示します。

(最初のフィールドがテキストとしてではなく数字としてソートされるようにソートするための-nパラメーターが必要ですが、ソートにかなりの数が必要なので、これはduに-hパラメーターを使用することを排除します)

シンボリックリンクをたどる(デフォルトはシンボリックリンクをたどらない)場合や、サブディレクトリを除いたディレクトリの内容のサイズを表示する場合など、duに対する他のパラメータを使用できます。 duは、ディレクトリ内のファイルが最後に変更された日時をリストに含めることもできます。

37
mas

ほとんどの場合、私はCLIツールを好みますが、ドライブの使用に関しては、 filelight がとても好きです。このプレゼンテーションは私が見たことのある他のどのスペース管理ツールよりも直感的です。

Filelight screenshot

23

FilelightはKDEユーザーにとっては良いのですが、完全を期すために(質問のタイトルは一般的です) Baobab はUbuntu、別名Disk Usage Analyzerに含まれています。

enter image description here

20
Nicolas Raoul

GUIツールKDirStatは、データを表形式でもグラフィックでも表示します。ほとんどのスペースが使用されている場所をすぐに確認できます。

enter image description here

これがまさにあなたが望んでいなかったKDEツールであるかどうかはわかりませんが、それでもこのような質問で言及されるべきだと思います。それはいいことだし、多くの人はおそらくそれを知らない - 私は最近自分自身でそれについて学んだだけだ。

8
Jonik

Unixでは、組み合わせが常に最良のトリックです。

du -sk $(find . -type d) | sort -n -k 1

ディレクトリサイズをKB単位で表示し、最後に最大になるようにソートします。
ツリービューにはもう少し手間がかかります...本当に必要ですか?

このスキャンは複数のディレクトリにまたがってネストされているため、サブディレクトリが上位のディレクトリにもカウントされ、ベースディレクトリの.が最後に合計使用率の合計として表示されます。

しかし、特定の深さで検索するために検索の深さコントロールを使用することができます。
そして、実際には、スキャンにもっと深く関与してください。 -maxdepth-mindepthによるfindの深さ制御は、特定のサブディレクトリの深さに制限することができます。


これはあなたの引数が長すぎる問題に対する洗練されたバリエーションです。

find . -type d -exec du -sk {} \; |  sort -n -k 1
5
nik

私は gt5 が好きです。ツリーをナビゲートしてサブディレクトリを開き、詳細をドリルダウンすることができます。結果を表示するには、lynxなどのテキストモードのWebブラウザを使用します。最良の結果を得るには、 elinks をインストールしてください。

alt text

3

このような入れ子の出力は得られませんが、duを試してください。

du -h /path/to/dir/

これをDocumentsフォルダで実行すると、次のことがわかります。

josh-hunts-macbook:Documents joshhunt$ du -h
  0B    ./Adobe Scripts
  0B    ./Colloquy Transcripts
 23M    ./Electronic Arts/The Sims 3/Custom Music
  0B    ./Electronic Arts/The Sims 3/InstalledWorlds
364K    ./Electronic Arts/The Sims 3/Library
 77M    ./Electronic Arts/The Sims 3/Recorded Videos
101M    ./Electronic Arts/The Sims 3/Saves
 40M    ./Electronic Arts/The Sims 3/Screenshots
1.6M    ./Electronic Arts/The Sims 3/Thumbnails
387M    ./Electronic Arts/The Sims 3
387M    ./Electronic Arts
984K    ./English Advanced/Documents
1.8M    ./English Advanced
  0B    ./English Extension/Documents
212K    ./English Extension
100K    ./English Tutoring
5.6M    ./IPT/Multimedia Assessment Task
720K    ./IPT/Transaction Processing Systems
8.6M    ./IPT
1.5M    ./Job
432K    ./Legal Studies/Crime
8.0K    ./Legal Studies/Documents
144K    ./Legal Studies/Family/PDFs
692K    ./Legal Studies/Family
1.1M    ./Legal Studies
380K    ./Maths/Assessment Task 1
388K    ./Maths
[...]

それからsortにパイプラインすることで出力をソートすることができます

du /path/to/dir | sort -n
2
Josh Hunt

各ファイル/ディレクトリのディスク使用率を見つけることは有益ですが、ほとんどの場合、ディスク内の最大のファイル/ディレクトリを知っていれば十分です。

だから私のお気に入りはこれです:

# du -a | sort -n -r | head -n 20

そして出力は次のようになります。

28626644        .
28052128        ./www
28044812        ./www/vhosts
28017860        ./www/vhosts/example.com
23317776        ./www/vhosts/example.com/httpdocs
23295012        ./www/vhosts/example.com/httpdocs/myfolder
23271868        ./www/vhosts/example.com/httpdocs/myfolder/temp
11619576        ./www/vhosts/example.com/httpdocs/myfolder/temp/main
11590700        ./www/vhosts/example.com/httpdocs/myfolder/temp/main/user
11564748        ./www/vhosts/example.com/httpdocs/myfolder/temp/others
4699852         ./www/vhosts/example.com/stats
4479728         ./www/vhosts/example.com/stats/logs
4437900         ./www/vhosts/example.com/stats/logs/access_log.processed
401848          ./lib
323432          ./lib/mysql
246828          ./lib/mysql/mydatabase
215680          ./www/vhosts/example.com/stats/webstat
182364          ./www/vhosts/example.com/httpdocs/tmp/aaa.sql
181304          ./www/vhosts/example.com/httpdocs/tmp/bbb.sql
181144          ./www/vhosts/example.com/httpdocs/tmp/ccc.sql
1
trante

これはあなたのためにそれを自動的にするスクリプトです。

http://www.thegeekscope.com/linux-script-to-find-largest-files/

次に、スクリプトの出力例を示します。

**# sh get_largest_files.sh / 5**

[SIZE (BYTES)]     [% OF DISK] [OWNER]         [LAST MODIFIED ON]        [FILE] 

56421808           0%           root           2012-08-02 14:58:51       /usr/lib/locale/locale-archive
32464076           0%           root           2008-09-18 18:06:28       /usr/lib/libgcj.so.7rh.0.0
29147136           0%           root           2012-08-02 15:17:40       /var/lib/rpm/Packages
20278904           0%           root           2008-12-09 13:57:01       /usr/lib/xulrunner-1.9/libxul.so
16001944           0%           root           2012-08-02 15:02:36       /etc/selinux/targeted/modules/active/base.linked

Total disk size: 23792652288 Bytes
Total size occupied by these files: 154313868 Bytes  [ 0% of Total Disc Space  ]

*** Note: 0% represents less than 1% ***

このスクリプトはとても便利で便利です。

1
Kam

別の方法としては、 agedu を使用します。これは、最終アクセス時間までにディスクスペースを細かくします。これにより、無駄なスペースのあるファイルを見つけやすくなります。

一時的なWebページを提供することで、Xウィンドウのないサーバーでも使用できるので、グラフを使ってリモートで使用状況を分析できます。サーバーのIPアドレスが192.168.1.101であると仮定すると、サーバーのコマンドラインでこれを入力できます。

agedu -s / -w --address 192.168.1.101:60870 --auth basic -R

これにより、「GUI」にアクセスして結果を参照できるユーザー名、パスワード、およびURLが印刷されます。完了したら、サーバー上でageduCtrl+Dで終了します。

1
Bastiaan

現在のディレクトリとそのサブディレクトリのトップ25ファイルを見つけるには

find . -type f -exec ls -al {} \; | sort -nr -k5 | head -n 25

"sort -nr -k5"パイプコマンドを使用して、ファイルのサイズに基づいてソートして、上位25ファイルを出力します。

1
xpros
du -chs /*

ルートディレクトリのリストを表示します。

0
RusAlex

次のようなワンライナーを試してください(現在のディレクトリ内の上位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がないため)、sortからcoreutilsをインストールする必要があります。

そのため、これらのエイリアスは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

もう少しリストを完成させるために、私は私のお気に入りのディスク使用状況アナライザを追加します。それは xdiskusage です。

GUIには他の古き良きXユーティリティがいくつかありますが、高速で肥大化していませんが、それでも階層内を簡単に移動していくつかの表示オプションを選択できます。

$ xdiskusage /usr

enter image description here

0
mpy