最もディスク容量を使用するファイルを見つける


43

ハードドライブ上の最大ファイルを一覧表示することはできますか?私は頻繁df -Hにディスク使用量を表示するために使用しますが、これはフルのパーセンテージ、GBの残りなどを示すだけです。

大量の小さなファイルと非常に少数の非常に大きなファイルを使用して、データ集約型の計算を多数行います。使用されるディスク領域のほとんどは非常に少数のファイルにあるため、これらの大きなファイルがどこにあるかを追跡することは困難です。1 kBファイルを削除しても空き容量はあまりありませんが、100 GBファイルを削除すると空き容量が増えます。ハードドライブ上のファイルをサイズの観点から並べ替える方法はありますか?

ありがとう。


「TDU」については、以下を参照してください。unix.stackexchange.com/questions/425615/...
ジョセフ・ポール

回答:


47

利用可能な標準ツールを使用する場合:

現在のディレクトリの上位10個のファイルを一覧表示するには: du . | sort -nr | head -n10

現在のディレクトリから最大のディレクトリをリストするには: du -s * | sort -nr | head -n10

更新最近、私は通常、より読みやすい形式を使用します(Jay Chakraが別の答えで説明している| head -n10ように、画面からスクロールさせてください。最後の行には最大のファイルまたはディレクトリ(ツリー)があります。

時々、例えば 現在のディレクトリに多くのマウントポイントがある-x場合--exclude=PATTERN、またはmultiple を使用する代わりに、未使用のマウントポイント(多くの場合 /mnt)にファイルシステムをマウントし、そこから作業する方が便利です。

大規模な(NFS)ボリュームで作業している場合du、大量の(サブ)ディレクトリで実行すると、ストレージバックエンド(ファイラー)にかなりの負荷がかかる可能性があることに注意してください。その場合はquota、ボリュームの設定を検討することをお勧めします。


3
最初のオプションとして、単にそれらをリストすることはできませんls -Sl | headか?
ベルンハルト

いいえ、duディレクトリツリー全体を走査しますが、ls -Sは現在のディレクトリのみをチェックします。
ジッピー

35

ジッピーの答えに追加する

現在のディレクトリから最大のディレクトリを人間が読める形式でリストするには:

du -sh * | sort -hr | head -n10

サンプル:

[~]$ du -sh * | sort -hr | head -n10
48M app
11M lib
6.7M    Vendor
1.1M    composer.phar
488K    phpcs.phar
488K    phpcbf.phar
72K doc
16K nbproject
8.0K    composer.lock
4.0K    README.md

読みやすくなりました:)


14

試してみてくださいncdu。ディスクの使用状況の概要がわかるからです。そのウェブサイトから:

ncursesインターフェースを備えたディスク使用状況アナライザー。リモートサーバー上で実行することを目的としており、完全なギャップのあるセットアップはないが、単純なSSH接続を使用する必要があります。ncduは、高速でシンプルで使いやすいことを目指しており、ncursesがインストールされている最小限のPOSIXのような環境で実行できるはずです。


3

(gnu)

du -max /dir | sort -n大きなファイルと大きなディレクトリを表示し、クリーンアップを行う必要がある場所を特定するために使用できます。

du -max | sort -n | tail -1000
...
46632   ./i386/update/SuSE-SLES/8/rpm/i586/kernel-source-2.4.21-138.i586.rpm
49816   ./UnitedLinux/apt/i386/RPMS.updates/k_debug-2.4.21-138.i586.rpm
679220  ./UnitedLinux/apt/i386/RPMS.updates
679248  ./UnitedLinux/apt/i386
679252  ./UnitedLinux/apt
691820  ./UnitedLinux/i586
691836  ./i386/update/SuSE-SLES/8/rpm/i586
695192  ./i386/update/SuSE-SLES/8/rpm
695788  ./i386/update/SuSE-SLES/8
695792  ./i386/update/SuSE-SLES
695804  ./i386/update
695808  ./i386
1390184 ./UnitedLinux

(私はそれがかなり古い木だと知っています:p)


2

Ubuntuのすべてのファイルとディレクトリのサイズを見つける簡単で効果的な方法があります。

アプリケーション>アクセサリ> Disk Usage Analyzer

このウィンドウで、ツールバーの「ファイルシステムのスキャン」ボタンをクリックします。少し(数秒)すると、すべてのディレクトリとファイルのディスク使用量が得られます。



0

このコマンドを試してみると、20Mbを超えるすべてのファイルがリストされます。

find / -type f -size +20000k -exec ls -lh {} \; 2> /dev/null \
  | awk '{ print $NF ": " $5 }'  | sort -hrk 2,2

3
ファイルシステムの最大ファイルが20MBの場合、おそらくディスク容量が不足することはないでしょう。少なくともどのHDでもこのミレニアムを作った
ケビン

それはほんの一例です。好きなものをそこに置きます。20MBのファイルだけでなく、20MBを超えるすべてのものを検出します。
-patseb

ls -lhその後sortls -sまたはstat -c %bおそらくより良いです。
ミケル

わかりません。私の例ではlsとsortを使用しています。彼はディレクトリではなくディスク全体でファイルを検索したかったのです。
patseb

0

次のコマンドを入力します

cd /

次に入力

du -sh * | grep G

上記のコマンドは、どのディレクトリがどのくらいのメモリを使用したかを示しています。その後、削除するディレクトリまたはファイルを決定する必要があります


-2

このコマンドで試すことができます、それは大きいファイルをリストします:

ls -lrS | tail -1

HDD全体ではなく、現在のディレクトリを表示します。
slm

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.