ディレクトリ(フォルダ)内のすべてのファイルの合計サイズ(ディスク使用量)を表示する簡単なコマンドはありますか?
私はこれらを試しましたが、彼らは私が望むことをしません:
ls -l
、ディレクトリ内の個々のファイルのサイズのみを表示します。df -h
、ディスク上の空き領域と使用済み領域のみを表示します。
ディレクトリ(フォルダ)内のすべてのファイルの合計サイズ(ディスク使用量)を表示する簡単なコマンドはありますか?
私はこれらを試しましたが、彼らは私が望むことをしません:
ls -l
、ディレクトリ内の個々のファイルのサイズのみを表示します。 df -h
、ディスク上の空き領域と使用済み領域のみを表示します。回答:
コマンドはdu
「ディレクトリごとに再帰的に各FILEのディスク使用量を要約します」、例えば
du -hs /path/to/directory
-h
「人間が読める」数字を取得します。たとえば、140M
代わりにget 143260
(サイズはキロバイト)-s
要約用です(そうしないと、フォルダーのサイズだけでなく、フォルダー内のすべてのものも個別に取得されます)使用している-h
ときに、以下を使用して人間が読める値をソートできます。
du -h | sort -h
-h
オンのフラグは、sort
「人間が読み取り可能な」サイズ値を考慮します。
すべてのファイルとディレクトリを再帰的に一覧表示したくない場合--max-depth
は、表示するアイテムの数を制限するパラメーターを指定できます。最も一般的に、--max-depth=1
du -h --max-depth=1 /path/to/directory
du -sh
それを覚える方法として、またはDOOSH を使用します(注:コマンドは同じで、メモリ目的のためのコマンドラインフラグの構成だけです)
du -hs *
て最大のディレクトリに行き、どのファイルがとても大きいかを見つけました...これはとても良い方法であり、一番いいのは何もインストールする必要がないということです!間違いなく私の賛成票に値する
du
選択された単位に値が1桁以上ある場合、やや独特の丸めがあり、小数を表示しません)、および古典的な1024対1000のプレフィックスの問題。値を表示する単位を変更du
するオプション-B
(または--block-size
)があります。または、-b
代わり-h
にバイト単位の「生の」値を取得することもできます。
最近、ディレクトリサイズの概要をすばやく提供する、ncursesベースの優れた対話型ツールを見つけました。そのようなツールを何年も探しました。
コマンドラインのバオバブと考えてください:
apt-get install ncdu
ncdu
すごい!インストールしたら、これを実行しncdu /
ます。システム上で最大のファイルを非常にすばやく見つけることができます。h
ncduのコンソールインターフェイス内で押します。これは非常に便利なショートカットを持っている
tree
このジョブの別の便利なコマンドです。
を介してインストールしsudo apt-get install tree
、次のように入力します。
tree --du -h /path/to/directory
...
...
33.7M used in 0 directories, 25 files
マンツリーから:
-h Print the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).
--du For each directory report its size as the accumulation of sizes of all its files and sub-directories
(and their files, and so on). The total amount of used space is also given in the final report (like
the 'du -c' command.)
以下は、合計、フォルダー、およびファイルサイズを印刷するために使用しているものです。
$ du -sch /home/vivek/* | sort -rh
------------------------------------------------------------
-c, --total
produce a grand total
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
-s, --summarize
display only a total for each argument
-------------------------------------------------------------
-h, --human-numeric-sort
compare human readable numbers (e.g., 2K 1G)
-r, --reverse
reverse the result of comparisons
70M total
69M /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
52K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
答えは、それdu
がディレクトリの合計サイズを見つけるためのツールであることを明らかにしました。ただし、考慮すべき要素がいくつかあります。
時々、du
出力はファイルシステムによって割り当てられたスペースを報告するため、誤解を招く可能性があります。これは、個々のファイルのサイズの合計とは異なる場合があります。通常、ファイルシステムは、1文字だけを保存した場合でも、ファイルに4096バイトを割り当てます!
2の累乗と10の累乗の単位による出力の違い。-h
スイッチしdu
、人間が読み取り可能な出力を与えるために2 ^ 10(1024)、2 ^ 20(1048576)等によりバイトの数を分割します。多くの人は、10の累乗(1K = 1000、1M = 1000000など)を見ることに慣れている可能性があり、その結果に驚くかもしれません。
ディレクトリ内のすべてのファイルのサイズの合計をバイト単位で見つけるには、次のようにします。
find <dir> -ls | awk '{sum += $7} END {print sum}'
例:
$ du -s -B 1
255729664
$ find . -ls | awk '{sum += $7} END {print sum}'
249008169
--si
「
du /foldername
フォルダのサイズを知るための標準コマンドです。manページを読んでオプションを見つけることをお勧めします。
man du
私が思う最高のものは次のとおりです:
du -h directory_name | tail -n1
これにより、関心のあるディレクトリのサイズのみが表示され、そのディレクトリ内のディレクトリおよびファイルのサイズは出力されません。
フォルダーのサイズが大きい場合、duの方が時間がかかることを付け加えます。このコマンドが機能するには、我慢してください。他のUNIXコマンドと同様に、time
このコマンドの前に使用すると、このプロセスの合計時間を確認できます。
time du -h directory_name | tail -n1
du
これにはオプションがあります-s