web-dev-qa-db-ja.com

ディレクトリに保存されている量を再帰的に見つける方法は?

llまたはls -lを使用して長いリストを表示すると、ファイルのバイトサイズを確認できることを知っています。しかし、そのディレクトリ内のファイルとその中のサブディレクトリなどを含むディレクトリ内のストレージの量を知りたいのですが、ファイルの数ではなく、それらのファイルが占めるストレージの量を知りたいです。

それで、特定のディレクトリにあるストレージの量を再帰的に知りたいですか?コマンドがある場合、それはバイト単位であると思います。

149
Rob Avery IV

これを試してください:

du -s dir

または

du -sh dir

oSによって異なりますが、-hサポートが必要です。

見る

man du
161
Gilles Quenot

あなただけです:

du -sh /path/to/directory

どこ -ssummaryおよび-h for人間が読める非標準 オプション)。

注意してくださいただし、lsとは異なり、これはではありませんファイルサイズを表示しますが、ディスク使用量(つまり、 filesystem block-size)ですが、ファイルは小さい場合や大きい場合があるため、--apparent-sizeオプション:

du -sh --apparent-size /path/to/directory

これは、必要に応じてネットワーク経由で転送されるサイズです。

実際、ファイルには「穴」があり(空のシェル)、ファイルシステムのブロックサイズよりも小さい場合や、ファイルシステムレベルで圧縮される場合などがあります。manページ 説明 これ。

Nicklaspoints out のように、ncduディスク使用量アナライザーを使用することもできます。ディレクトリ内から起動すると、どのフォルダーやファイルがディスクスペースを使用しているかを、大きいものから小さいものの順に表示します。

この質問 も表示されます。

30
Totor

ディレクトリ内のすべての{サブ}フォルダサイズを知りたい場合は、du-dまたは--max-depthオプションも使用できます(引数:再帰的な制限)

例えば ​​:

du -h /path/to/directory -d 1

のようなものが表示されます

4.0K /path/to/directory/folder1
16M  /path/to/directory/folder2
2.4G /path/to/directory/folder3
68M  /path/to/directory/folder4
8G   /path/to/directory/folder5

PS:再帰的な制限として0を入力することは、-sオプションと同等です。これらの2つのコマンドは同じ結果になります(指定されたディレクトリの再帰的な人間が読めるサイズ)。

du -h /path/to/directory -d 0
du -sh /path/to/directory
24
Flo Schild

すでに述べたduコマンドの代わりはncduです。これはターミナルで使用するための素晴らしいディスク使用量アナライザーです。最初にインストールする必要があるかもしれませんが、ほとんどのパッケージリポジトリで利用できます。

編集:出力形式については、次のスクリーンショットを参照してください http://dev.yorhel.nl/ncdu/scr

16
Niklas

これにより、フォルダー(再帰的)やファイルなど、現在のディレクトリのサイズのリストが表示されます。

$ du -hs *
7.5M    Applications
9.7M    Desktop
 85M    Documents
 16K    Downloads
 12G    Google Drive
 52G    Library
342M    Movies
8.3M    Music
780M    Pictures
8.5G    Projects
8.0K    Public
 16K    client1.txt
13
Simon Liu

Unixでは、ディレクトリには名前とファイルシステムオブジェクトへの参照のみが含まれます(inodeは、ディレクトリ、ファイル、またはその他のエキゾチックなものを参照できます)。ファイルは、同じディレクトリ内の複数の名前で表示されるか、複数のディレクトリにリストされます。したがって、「ディレクトリと内部のファイルによって使用されるスペース」は、ファイルが「内部」ではないため、実際には意味がありません。

とは言っても、コマンドdu(1)は、ディレクトリが使用する領域と、そこから到達可能なすべての領域を一覧表示します。du -s-h GNU duのような一部の実装は、「人間が読める」出力(つまり、キロバイト、メガバイト)を提供します。

4
vonbrand

Awkの「file-size.sh」を使用できます ベロアライブラリ

ls -ARgo "$@" | awk '{q += $3} END {print q}'
2
Steven Penny

私にとっては、OS X ElCapitánの深さとパスの場合、それは逆に働きました

du -h -d 1 /path/to/directory
1
GZepeda