2009-07-21 06:54:48 +0000 2009-07-21 06:54:48 +0000
134
134
Advertisement

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

Advertisement

どのファイル/ディレクトリが一番スペースを占有しているかを表示してくれるプログラムを探しています。

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

0x1&

KDE3で可能なのは知っていますが、それはしたくありません - KDE4かコマンドラインがいいでしょう。

Advertisement
Advertisement

回答 (16)

200
200
200
2010-07-07 15:31:29 +0000

私はいつもncduを使っています。インタラクティブでとても速いです。

131
131
131
2012-03-06 19:56:10 +0000

最大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 はスペースの代わりにヌルデリミタを使用し、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
``` の例: 

0x1&
37
Advertisement
37
37
2009-07-21 07:19:02 +0000
Advertisement

クイックビューの場合。

du | sort -n

は、最大の最後にある全てのディレクトリをリストアップします。

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

または、再び、冗長な * を避けます。

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

は、カレントディレクトリ内の全てのディレクトリを、最後に一番大きいものをリストアップします。

(最初のフィールドがテキストではなく数値でソートされるようにソートするには -n パラメータが必要ですが、ソートに有効な数値が必要なので、du に -h パラメータを使うことはできません)

その他、シンボリックリンクを辿りたい場合(デフォルトではシンボリックリンクを辿らないようになっています)や、サブディレクトリを除いたディレクトリの内容のサイズだけを表示したい場合など、du の他のパラメータを使用することができます。

23
23
23
2009-07-24 04:26:50 +0000

ほとんどのことについては、CLIツールの方が好きですが、ドライブの使い方については、 filelight がとても気に入っています。今まで見てきたどのスペース管理ツールよりも直感的に操作できる。

20
Advertisement
20
20
2013-02-18 04:35:03 +0000
Advertisement

KDEユーザーにとってはFilelightの方が良いのですが、完全性のために(質問のタイトルは一般的なものです)、 Baobab はUbuntu、別名Disk Usage Analyzerに含まれていることに言及しなければなりません。

8
8
8
2009-07-22 10:00:12 +0000

GUIツールである* KDirStat **は、表形式とグラフ形式の両方でデータを表示します。スペースのほとんどがどこで使われているのか、本当にすぐにわかります。 これは良いもので、おそらく知らない人も多いでしょう - 私自身も最近になって初めて知りました。

5
Advertisement
5
5
2009-07-21 07:06:07 +0000
Advertisement

Unixではコンビネーションが常に最高のトリックです。

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

ディレクトリのサイズをKB単位で表示し、最後に一番大きいものを表示するようにソートします。
find . -type d -exec du -sk {} \; | sort -n -k 1

ツリービューではもう少し手間がかかりますが、本当に必要なのでしょうか?

このスキャンはディレクトリ間で入れ子になっているので、上位のディレクトリについては再度サブディレクトリをカウントし、ベースディレクトリ.は利用率の合計として最後に表示されることに注意してください。

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


ここでは、あなたの arg-to-long 問題に対する洗練されたバリエーションがあります

0x1&

3
3
3
2009-07-21 11:35:45 +0000

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

2
Advertisement
2
2
2009-07-21 07:00:04 +0000
Advertisement

このような入れ子になった出力は得られませんが、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
``` に配管してソートすることができます。
1
1
1
2013-05-15 21:52:25 +0000

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

# 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

出力は以下のようになります。

0x1&

1
1
1
2012-09-06 05:27:20 +0000

以下は、このスクリプトを自動的に実行してくれるものです。 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
1
1
2014-05-29 03:39:47 +0000

カレントディレクトリとそのサブディレクトリの上位25ファイルを検索するには

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

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

1
1
1
2015-04-10 12:07:49 +0000

もう一つの選択肢として、ageu があります。これは、ディスクスペースを最終アクセス時間で分解し、スペースを無駄にしているファイルを簡単に見つけることができます。

これは、一時的なウェブページを提供することで、X Windowsのないサーバー上でも動作するので、使用状況をグラフでリモートで分析することができます。サーバのIPアドレスが192.168.1.101であると仮定して、サーバのコマンドラインに次のように入力します

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

これでユーザ名、パスワード、URLが表示され、"GUI “にアクセスして結果を閲覧することができます。終わったら、サーバー上でageduCtrl+Dを終了させます。

0
0
0
2010-07-07 11:05:40 +0000
du -chs /*

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

0
0
0
2013-08-18 12:36:57 +0000

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

このGUIは、他の古き良きXユーティリティを思い出します。

$ xdiskusage /usr

.

0
0
0
2015-03-05 13:44:05 +0000
ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

または人間が読めるサイズで以下のワンライナーを試してみてください(カレントディレクトリ内の最大ファイルの上位20個を表示)。

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'
Advertisement

関連する質問

6
10
5
37
3
Advertisement
Advertisement