web-dev-qa-db-ja.com

シンボリックリンクのように機能するLinuxディスク使用量アナライザーは実際のファイルです

大きなファイルを処理するために設計されたDVCSgitの拡張機能であるgit-annexを使用しています。シンボリックリンクを多用します。実際の大きなファイルは.git/annexディレクトリに移動され、元のファイルはそこにシンボリックリンクされます。

ディスク容量が不足しているので、空き容量を増やして、すべての容量を使用しているものを確認する必要があります。通常、私はncdu、Baobab、Filelightなどのディスク使用ツールを使用します。ただし、シンボリックリンクは基本的に空として扱われ、ポイントしているファイルのみが任意のスペースを使用していると見なされます。つまり、git-annexを使用すると、メインディレクトリで使用されているスペースがなく、.git/annexディレクトリで使用されているスペースがたくさん表示されます。これは役に立ちません。

Linux用の(グラフィカルまたはncurses)ベースのディスク使用プログラムはありますか(apt-get installableは、元のファイルが使用するスペースを使用しているとしてシンボリックリンクをカウントできる(オプションを使用するかどうかに関係なく)簡単です?多くのオプションがありますハードリンクのさまざまな動作については、

(スペースを使用することでシンボリックリンクをカウントすることには、スペーススペースを2回カウントする、シンボリックリンクが壊れているなどの欠陥があることを知っています。しかし、私の目的では問題ありません)

6
Rory

GNU duには--dereferenceオプションがあり、ディスク使用量を計算するときにシンボリックリンクを逆参照します。ただし、duは、同じスペースを2回カウントすることを拒否します。これは、状況によっては大きな問題になる可能性があります。

% mkdir foo bar baz
% dd if=/dev/zero of=foo/test bs=1024 count=10000
10000+0 records in
10000+0 records out
10240000 bytes (10 MB) copied, 0.0176239 s, 581 MB/s
% (cd bar; ln -s ../foo/test)
% (cd baz; ln -s ../foo/test)
% du -hc bar baz
4.0K    bar
4.0K    baz
8.0K    total
% du -hc --dereference bar baz
9.8M    bar
4.0K    baz
9.8M    total

ただし、同じターゲットへの複数のシンボリックリンクがない場合は、-dereferenceが必要な処理を実行すると思います。

6

git-annexには、いくつかのgit-annex対応のディスク使用ツールを含む 関連ソフトウェア のリストがあります gad および sizes

1
Andrew

現在、git-annexにはこの問題に対する独自の解決策があります。使用できます:

git annex info --fast *

...実際のディスク使用量(およびそれ以上)をファイルから直接git-annexから取得します。また、リモートリポジトリで動作することもできます。これは非常に便利です。

git annex info --fast --not --in here .

...たとえば、現在のリポジトリにあるnotのデータ量がわかります。

私もこれで ncd を使用しました 小さなパッチ 良い結果が得られました。

これについて議論しているアップストリームフォーラムは "du"は別館に相当しますか? であり、du -Lgadsizes などの提案があります。それはここの他の回答で言及されました。

1
anarcat

Linux用の(グラフィカルまたはncurses)ベースのディスク使用プログラムはありますか(apt-get installableは、元のファイルが使用するスペースを使用しているとしてシンボリックリンクをカウントできる(オプションを使用するかどうかに関係なく)簡単です。

TL; DR:du -akL mydirectory | xdiskusage -aq

長い答え:2つの強力な組み合わせ可能なプログラムを組み合わせる

私も git-annex を使用しており、同じニーズがあります。

ディスク使用量を取得するための参照ツール:GNU du

GNU duほとんどのGNUツールには 多くのオプション があります。

‘-l’ ‘-間接参照’

シンボリックリンクを逆参照します(リンクが使用するスペースの代わりに、リンクが指すファイルまたはディレクトリが使用するディスクスペースを表示します)。

ディスク使用量ツリーをインタラクティブに探索および拡大するための参照ツール:xdiskusage

さらに、 xdiskusage という名前の優れた軽量のディスク使用量表現ツールがあります。

完全にグラフィカルに使用できます。フォルダを選択するか、完全なファイルシステムを選択して空き領域の表現を含めます。クリックして、矢印とEnterキーを使用して、ツリー表示を拡大し、いくつかのサブツリーを非表示にすることができます。リモートディスプレイでも、非常に実用的で、シンプルで、迅速です。

それらを組み合わせて利益を上げましょう!

du -akと同様にdu呼び出しの結果をフィードすることもできるNiceプロパティがあります。

だから、あなたはすることができます:

du -akL mydirectory | xdiskusage

私はいつもこのバリアントを使用します。-aは(ディレクトリだけでなく)すべてのファイルを表示することを意味し、-qは進行状況スライダーを削除することですべてをはるかに高速にします。

du -akL mydirectory | xdiskusage -aq

http://xdiskusage.sourceforge.net/ からの画像BillSpitzakによる。

xdiskusage display sample

apt-get?

apt-get installable

DebianおよびUbuntuを含む派生物:

Sudo apt-get install coreutils xdiskusage

(あなたは間違いなくすでにcoreutilsをインストールしています。)

0