ディレクトリ内のすべてのフォルダ(隠しフォルダと非表示フォルダの両方)のサイズを(非再帰的に)測定する方法を教えてください。

ディレクトリ内のすべてのフォルダ(隠しフォルダと非表示フォルダの両方)のサイズを(非再帰的に)測定する方法を教えてください。

somedir2 つの子ディレクトリを含む親ディレクトリがあります.hiddenDirnotHidden

非再帰的にサイズを測定したい全て内の子ディレクトリsomedir

Unix でこれを実行するにはどうすればよいですか?


私が欲しいものの写真:

ここに画像の説明を入力してください

失敗した試み:

次のduベースコマンドは、表示されているディレクトリのみを返します。

du -sh *

その間

du -sh .*

隠しディレクトリのみを返します。


サイズを返すにはどうすればいいですか?全て写真のようなディレクトリですか?

答え1

GNUの場合du:

du -hd1

(また、.サブディレクトリに対して報告されたディスク使用量と、現在のディレクトリ内のディレクトリ以外のファイルのディスク使用量の合計となるディスク使用量も報告されます)。

およびzsh任意のdu:

du -sk -- *(/D)

(キビバイト単位)。

いずれにせよ、これは深度2以下のディレクトリとその内容のディスク使用量を報告しませんが、それらのディスク使用量は依然としてトップレベルのディレクトリのディスク使用量に含まれています(言い換えれば、再帰)。

それが、サイズディレクトリの。言い換えれば、それはそのディレクトリとその内容が削除された場合に回収されるディスク領域です (ファイルにそれらのディレクトリ外へのハードリンクがなく、そのデータがそれらのディレクトリ外の他のファイルで (おそらく部分的に) 参照されていないと仮定)。これは通常、 によって報告されるファイル自体 (ディレクトリファイルを含む) の見かけのサイズの合計とは異なることに注意してくださいls -l

答え2

Du は複数の引数を取ります。実際、* は du に渡される前にシェルによって展開されます。したがって、必要なのはこれだけです。

du -sh * .??*

.注意: これには、と 1 つの文字で名前が付けられたファイルまたはディレクトリ ( と呼ばれるディレクトリなど)は含まれません.a

.??*は、現在のディレクトリと親ディレクトリへのリンクである と.をスキップするために使用されます。..

関連情報