どのファイル/ディレクトリが最もスペースを占有しているかを示すプログラムを探しています:
74% music
\- 60% music1
\- 14% music2
12% code
13% other
私はそれがKDE3で可能であることを知っていますが、私はむしろそれをしたくありません-KDE4またはコマンドラインが好まれます。
どのファイル/ディレクトリが最もスペースを占有しているかを示すプログラムを探しています:
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
ヌル区切り文字の代わりにスペースを使用し、第二の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
find . -type f -print0 | xargs -0 du | sort -nr | head -10 | cut -f2 | xargs -I{} du -sh {}
つまりのsort -nr | head -10
代わりに使用sort -n | tail -10
)
簡単に表示するには:
du | sort -n
最後に最大のディレクトリをすべてリストします。
du --max-depth=1 * | sort -n
または、再度、冗長な*を避けます。
du --max-depth=1 | sort -n
現在のディレクトリ内のすべてのディレクトリをリストし、最後に最も大きいディレクトリをリストします。
(最初のフィールドがテキストとしてではなく数値としてソートされるように、ソートのための-nパラメーターが必要ですが、これはソートにかなりの数が必要なため、duに-hパラメーターを使用することを除外します)
duの他のパラメーターは、シンボリックリンクをたどる(デフォルトではシンボリックリンクをたどらない)場合や、サブディレクトリを除くディレクトリコンテンツのサイズを表示する場合などに使用できます。duは、ディレクトリ内のファイルが最後に変更された日付と時刻をリストに含めることもできます。
find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'
du -h --max-depth=1 2>/dev/null | sort -nr | grep -v ^0
-少し
ほとんどの場合、CLIツールを好みますが、ドライブの使用にはfilelightが大好きです。このプレゼンテーションは、これまで見たどのスペース管理ツールよりも直感的です。
FilelightはKDEユーザーには適していますが、完全を期すため(質問のタイトルは一般的です)、BaobabがUbuntuに含まれていること、別名Disk Usage Analyzerに言及する必要があります。
GUIツールのKDirStatは、データを表形式とグラフィカルの両方で表示します。ほとんどのスペースが使用されている場所をすばやく確認できます。
これがまさにあなたが望んでいないKDEツールであるかどうかはわかりませんが、このような質問でまだ言及すべきだと思います。それは良いことであり、多くの人はおそらくそれを知らないでしょう-私は最近自分でそれについて知りました。
ncdu
代わりに使用してください。
Unixでは常に組み合わせが最高のトリックです。
du -sk $(find . -type d) | sort -n -k 1
ディレクトリサイズをKBで表示し、最後に最大になるように並べ替えます。
しかし、ツリービューにはさらに多くの機能が必要です...本当に必要ですか?
このスキャンはディレクトリ全体にネストされているため、上位のディレクトリのサブディレクトリが再びカウント.
され、最後にベースディレクトリが合計使用率の合計として表示されます。
ただし、特定の深さで検索するには、検索で深さコントロールを使用できます。
そして、実際にスキャンにもっと関与してください...あなたが望むものに応じて。深さ制御find
と-maxdepth
し、-mindepth
特定のサブディレクトリの深さに制限することができます。
arg-too-long問題の洗練されたバリエーションがあります
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
自動的に実行するスクリプトを次に示します。
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% ***
このスクリプトは非常に便利で便利です。
各ファイル/ディレクトリのディスク使用率を見つけることは有益ですが、ほとんどの場合、ディスク内の最大のファイル/ディレクトリを知ることで十分です。
だから私のお気に入りはこれです:
# 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つの代替手段はageduであり、これは最終アクセス時間ごとにディスク容量を分割するため、スペースを浪費しているファイルを見つけやすくなります。
一時的なWebページを提供することにより、X Windowsのないサーバーでも機能するため、グラフを使用して使用状況をリモートで分析できます。サーバーのIPアドレスが192.168.1.101であると仮定すると、サーバーのコマンドラインでこれを入力できます。
agedu -s / -w --address 192.168.1.101:60870 --auth basic -R
これにより、ユーザー名、パスワード、URLが出力され、「GUI」にアクセスして結果を閲覧できます。完了したら、サーバー上で終了agedu
しCtrl+D
ます。
リストをもう少し完成させるために、お気に入りのディスク使用状況アナライザーを追加しxdiskusage
ます。
GUIは他の優れたol 'Xユーティリティを覚えています。高速で肥大化していないにもかかわらず、階層内で簡単にナビゲートでき、いくつかの表示オプションがあります。
$ xdiskusage /usr
次のワンライナーを試してください(現在のディレクトリにある上位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
2番目のコマンドは(として適切にOSX / BSD上で動作する
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'