私はどのファイル/ディレクトリが最もスペースを占めているかを私に示すためのプログラムを探しています。
74% music
\- 60% music1
\- 14% music2
12% code
13% other
私はそれがKDE3で可能であることを知っています、しかし私はむしろそうしたくないです - KDE4かコマンドラインは好まれます。
最大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
私はいつもncdu
を使います。対話的でとても速いです。
簡単に見てみましょう。
du | sort -n
最後に大きいものからすべてのディレクトリをリストします。
du --max-depth=1 * | sort -n
またしても、冗長な*を避けます。
du --max-depth=1 | sort -n
現在のディレクトリ内のすべてのディレクトリのうち、最後のディレクトリが最も大きいディレクトリを一覧表示します。
(最初のフィールドがテキストとしてではなく数字としてソートされるようにソートするための-nパラメーターが必要ですが、ソートにかなりの数が必要なので、これはduに-hパラメーターを使用することを排除します)
シンボリックリンクをたどる(デフォルトはシンボリックリンクをたどらない)場合や、サブディレクトリを除いたディレクトリの内容のサイズを表示する場合など、duに対する他のパラメータを使用できます。 duは、ディレクトリ内のファイルが最後に変更された日時をリストに含めることもできます。
ほとんどの場合、私はCLIツールを好みますが、ドライブの使用に関しては、 filelight がとても好きです。このプレゼンテーションは私が見たことのある他のどのスペース管理ツールよりも直感的です。
FilelightはKDEユーザーにとっては良いのですが、完全を期すために(質問のタイトルは一般的です) Baobab はUbuntu、別名Disk Usage Analyzerに含まれています。
GUIツールKDirStatは、データを表形式でもグラフィックでも表示します。ほとんどのスペースが使用されている場所をすぐに確認できます。
これがまさにあなたが望んでいなかったKDEツールであるかどうかはわかりませんが、それでもこのような質問で言及されるべきだと思います。それはいいことだし、多くの人はおそらくそれを知らない - 私は最近自分自身でそれについて学んだだけだ。
Unixでは、組み合わせが常に最良のトリックです。
du -sk $(find . -type d) | sort -n -k 1
ディレクトリサイズをKB単位で表示し、最後に最大になるようにソートします。
ツリービューにはもう少し手間がかかります...本当に必要ですか?
このスキャンは複数のディレクトリにまたがってネストされているため、サブディレクトリが上位のディレクトリにもカウントされ、ベースディレクトリの.
が最後に合計使用率の合計として表示されます。
しかし、特定の深さで検索するために検索の深さコントロールを使用することができます。
そして、実際には、スキャンにもっと深く関与してください。 -maxdepth
と-mindepth
によるfind
の深さ制御は、特定のサブディレクトリの深さに制限することができます。
これはあなたの引数が長すぎる問題に対する洗練されたバリエーションです。
find . -type d -exec du -sk {} \; | sort -n -k 1
このような入れ子の出力は得られませんが、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
各ファイル/ディレクトリのディスク使用率を見つけることは有益ですが、ほとんどの場合、ディスク内の最大のファイル/ディレクトリを知っていれば十分です。
だから私のお気に入りはこれです:
# 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
これはあなたのためにそれを自動的にするスクリプトです。
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% ***
このスクリプトはとても便利で便利です。
別の方法としては、 agedu を使用します。これは、最終アクセス時間までにディスクスペースを細かくします。これにより、無駄なスペースのあるファイルを見つけやすくなります。
一時的なWebページを提供することで、Xウィンドウのないサーバーでも使用できるので、グラフを使ってリモートで使用状況を分析できます。サーバーのIPアドレスが192.168.1.101であると仮定すると、サーバーのコマンドラインでこれを入力できます。
agedu -s / -w --address 192.168.1.101:60870 --auth basic -R
これにより、「GUI」にアクセスして結果を参照できるユーザー名、パスワード、およびURLが印刷されます。完了したら、サーバー上でagedu
をCtrl+D
で終了します。
現在のディレクトリとそのサブディレクトリのトップ25ファイルを見つけるには
find . -type f -exec ls -al {} \; | sort -nr -k5 | head -n 25
"sort -nr -k5"パイプコマンドを使用して、ファイルのサイズに基づいてソートして、上位25ファイルを出力します。
du -chs /*
ルートディレクトリのリストを表示します。
次のようなワンライナーを試してください(現在のディレクトリ内の上位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'
もう少しリストを完成させるために、私は私のお気に入りのディスク使用状況アナライザを追加します。それは xdiskusage
です。
GUIには他の古き良きXユーティリティがいくつかありますが、高速で肥大化していませんが、それでも階層内を簡単に移動していくつかの表示オプションを選択できます。
$ xdiskusage /usr