以前の「du」動作を復元する方法は?

以前の「du」動作を復元する方法は?

私のサーバー(Ubuntu 12.04)で何かを移動したい場合は、次のコマンドを使用して、現在のディレクトリの各サブディレクトリサイズと現在のディレクトリの総数を知りたいと思いますdu

$ du -sm * .
34      A
23      B 
1       .

サブディレクトリサイズの合計(最初の2行の値の合計)が現在のディレクトリとそのサブディレクトリ(最後の行)のサイズよりも大きいため、この内容を読みました。 Ubuntu 8.04を実行しているサーバーでは、-sm30年前にこのオプションを初めて使用したときと同じように機能します。

$ cd /var/spool
$ du -sm * .
1      cron
1      cups
0      mail
2      postfix
3      .

この違いが発生するのは、Ubuntu 12.04システムにはcoreutilsバージョン8.13があり、Ubuntu 8.04に6.10があるためですcoreutils。以下に関連するいくつかの最適化を行いました。これ、コマンドラインで指定してもディレクトリを2回計算/表示しません。最新バージョンではdu -sm . .1 行だけで回答を提供し、以前のバージョンでは 2 つの同じ行で回答を提供します。

12.04システムではこれを実行できますが、du -sm * ; du -sm .実際に興味のあるディレクトリに対してこれを行うことはオプションではありません。何百万ものファイルに1テラバイトを超えるデータを保持する28の直接サブディレクトリがあるからです。このディレクトリツリーを一度表示するには数時間かかり、ディレクトリ情報はオペレーティングシステムに比べて大きいように見え、キャッシュできないため、2番目のディレクトリツリーを実行するのにすぐに同じ時間がかかります(たとえば、大きなディレクトリでdu実行している場合)。ではありません)。 2回行うと一般的な効果が得られません。du -s第二に、サブツリーははるかに高速です。

結果をプログラムに入れて最初の列に値を追加できることを知っていますが、tee以前の動作を復元する方法がある場合は良いでしょうdu

不足しているcoreutilsコマンドラインオプションまたはインストールするためのdu選択肢はありますか?du

(また、遅くなったような気がしますがdu、これはおそらく保存して処理するデータの量が長年にわたって増加したためです。

ベストアンサー1

du dir1 dir2

すべてのディスク使用量とその内容を繰り返し報告しますdir1dir2ファイルは一度だけ計算されます。それ以外の場合は、ディスク使用量に誤った答えを提供します。

あなたはそれを使用することができます:

du -c dir1 dir2

両方の合計ディスク使用量も必要な場合。

だから:

du -sc -- *

現在のディレクトリに隠されていないファイルとディレクトリのディスク使用量と累積サイズの要約を提供します。

GNUを使用すると、du次のこともできます。

du -ad1

または

du -a --max-depth=1

ディスク使用量は1つのレベル(.したがってサブディレクトリ)以下に報告されます。これは-a、現在のディレクトリ内のディレクトリではないことを報告するのと同じですdu *

du次のオプションを使用すると、GNUにファイル数を数回カウントさせることができます-l

du -ls -- * .

それほど効率的ではなく、実際に望むものではないかもしれません。

おすすめ記事