web-dev-qa-db-ja.com

ディレクトリのサイズをすばやく計算するにはどうすればよいですか?

サブディレクトリがたくさんあるhomeディレクトリのサイズを計算したいと思います。

duの実行には約40秒かかります。
もっと速い方法はありますか?

$ time du -sh
5.0G    .

real    0m39.676s
user    0m0.058s
sys     0m3.151s
2
kev

かなりラウンドアバウトの方法は、起動時にマウントされる別のパーティションにホームディレクトリを配置し、将来のすべてのニーズに十分な大きさであることを確認することです。

それを行った後、使用しているスペースの量を知る最も速い方法は、パーティションの空きスペースと使用済みスペースを表示するdfコマンドです。 dfには、人間が読める形式で情報を表示するためのスイッチもあります。

2
Mokubai

…または、第3に、ディスククォータを使用できます。

モクバイの回り道の答え の変形は、ホームディレクトリ専用のボリュームにallホームディレクトリを置き、ディスククォータを有効にすることです。そのボリューム(および、データが既に存在するボリュームにクォータが追加されている場合はクォータデータベースを構築します)、およびquotaコマンドを使用して、ユーザーが使用したそのボリュームのユーザーのディスククォータの量を表示します。一元化されたマルチユーザータイムシェアリング環境で従来のUnicesに慣れている人は、これが非常によく知られているでしょう。 ☺

これは本当にありますか「私が所有しているものはどれくらいのディスクスペースを占めていますか?」に関してはduよりも有利です。 「」質問:他のユーザーがファイルの1つを巧妙にハードリンクしている場合(後でホームディレクトリからリンクを解除してなくなったと思われる場合)、xeは読み取りと実行のアクセス許可を拒否します(したがって、スキャンできません) du)を使用すると、それが消費するディスクスペースは引き続きディスククォータにカウントされ、不一致を検出できます。

そしてもちろん、すべてのホームディレクトリに個別のボリュームを用意することによるセキュリティと保守性の利点もすべて当てはまります。

3
JdeBP

いいえ、簡単な方法はありません。すべてのサブディレクトリを通過する必要があります。

2
mouviciel