大きなディレクトリのサイズを取得する方法は?

大きなディレクトリのサイズを取得する方法は?

Linuxで小さなサブディレクトリがたくさんある大きなディレクトリのサイズを取得するには?私は親ディレクトリのフルサイズが欲しいです。

試してみましたが、du -s mydirectory/実行に時間がかかり、端末を長時間開けておくことができません。

ディレクトリサイズをすばやく取得するより高速な方法はありますか、それとも端末を閉じて後で結果を得るためにバックグラウンドで実行する方法はありますか?

答え1

Marcusが提案した解決策については、答えに対するコメントでnohup出力を見つけることができます。次の適切なファイルにリダイレクトできます。screennohup.out

nohup du -s myfolder > size-of-myfolder.txt &

答え2

screen後ろから以下を使用できます。

screen -S du -d -m du -s my_dir/

その後、再接続します。

screen -r du

答え3

必要に応じてフォルダのサイズをすばやく追跡できるソリューションを探している場合は、次のオプションがあります。

  • CephFSファイルシステムは、フォルダ内のアイテムに必要なストレージサイズではなく、フォルダの「サイズ」で、フォルダの内容(サブフォルダを含む)の合計ディスク使用量を表示します。ls -Slh最大のファイルとフォルダを見つけて、サブフォルダでこれを繰り返すだけです。 CephFSは、マシンの多いクラスタに適しています。単一のシステムで実行できますが、設定は通常のファイルシステムよりも複雑です。

  • サブフォルダのサイズに興味がない場合は、XFSのプロジェクトクォータ機能を使用できます。プロジェクトクォータで追跡するプロジェクトに関心のある各フォルダを割り当てます。これにより、クォータレポートに各プロジェクトで使用されるスペースが表示されます。

  • 同様に、追跡するフォルダーごとに専用のユーザーアカウントを作成できる場合は、通常のユーザークォータを使用して使用量(ファイルサイズと数)を追跡できます。これは、プロジェクトクォータよりも広い範囲のファイルシステムに適用されます。

答え4

POSIX別の方法は、シェルでウィンドウマネージャを使用することです。背景:

{
    size=$(du -s myfolder/ | cut -d' ' -f1)
    size=$((size/1024))
    zenity --info --text="myfolder/ size is ${size}MiB"
} &

バラよりhttp://mywiki.wooledge.org/ArithmeticExpression

&たとえば、コマンドの最後に制御演算子を配置すると、command &シェルはバックグラウンドでコマンドを実行しますsubshell。シェルは、コマンドが完了するのを待たずに状態0を返します。最後のバックグラウンドコマンドのPidは、特殊変数を介して取得できます。$!

関連情報