web-dev-qa-db-ja.com

コマンドラインからディレクトリ(フォルダ)の合計サイズを確認するにはどうすればよいですか?

ディレクトリ(フォルダー)内のすべてのファイルの合計サイズ(ディスク使用量)を表示する簡単なコマンドはありますか?

私はこれらを試しましたが、彼らは私が望むことをしません:

  • ls -l。ディレクトリ内の個々のファイルのサイズのみを表示します。
  • df -h。ディスク上の空き領域と使用済み領域のみを表示します。
774
David Barry

duコマンドは、ディレクトリごとに再帰的に各FILEのディスク使用量を要約します。たとえば、

du -hs /path/to/directory
  • -hは、「人間が読める」数字を取得します。 140Mの代わりに143260(キロバイト単位のサイズ)を取得します
  • -sは要約用です(そうしないと、フォルダーのサイズだけでなく、すべてのinフォルダーも個別に取得されます)

-hを使用しているので、次を使用して人間が読める値をソートできます。

du -h | sort -h

sort-hフラグは、「Human Readable」サイズの値を考慮します。


すべてのファイルとディレクトリを再帰的に一覧表示したくない場合は、--max-depthパラメーターを指定して、表示するアイテムの数を制限できます。最も一般的には、--max-depth=1

du -h --max-depth=1 /path/to/directory
1243
Marcel Stimberg

最近、ディレクトリサイズの概要をすばやく提供する、ncursesベースの優れた対話型ツールを見つけました。そのようなツールを何年も探しました。

  • ファイル階層をすばやくドリルダウン
  • 削除できますツール内からの巨大な一時ファイル
  • とても速い

コマンドラインでは baobab と考えてください:

apt-get install ncdu
164
geekQ

これにより、サイズが再帰的に検索され、各フォルダー名の横に、下部に合計サイズとともに、すべて人間の形式で配置されます

du -hsc *
51
Brad

楽しい!

du foldername

そのコマンドの詳細 here

16
myusuf3

treeは、このジョブの別の便利なコマンドです。

Sudo apt-get install tree経由でインストールして、次を入力します。

tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files

man tree から:

-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.)
10
αғsнιη

以下は、合計、フォルダー、およびファイルサイズを印刷するために使用しているものです。

$ 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
9
vivekyad4v

答えは、duがディレクトリの合計サイズを見つけるためのツールであることを明らかにしました。ただし、考慮すべき要素がいくつかあります。

  • du出力は、ファイルシステムによって割り当てられたスペースを報告するため、誤解を招く可能性があります。これは、個々のファイルのサイズの合計とは異なる場合があります。通常、ファイルシステムは、ファイルに1文字しか格納していなくても、ファイルに4096バイトを割り当てます!

  • 2のべき乗と10のべき乗による出力の違い。 -hduに切り替えると、バイト数が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
4
pdp

読み取り可能な形式のディレクトリサイズのみについては、以下を使用します。

du -hs directoryname

これはおそらく正しいセクションにありませんが、コマンドラインから次のことを試すことができます。

ls -sh filename

-sはサイズで、-hは人間が読める形式です。

-lを使用して、以下のようにlsリストに表示します。

ls -shl
1
Shiv Singh

du /foldernameは、フォルダーのサイズを知るための標準コマンドです。 manページを読んでオプションを見つけることをお勧めします。

man du

コマンドを使用する前に、manページ(利用可能 online )を読む必要があります。

0

動作するPOSIXスクリプトは次のとおりです。

  • ファイル
  • ファイル
  • ディレクトリ
  • ディレクトリ
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

ソース

0
Steven Penny

目的のディレクトリに多くのサブディレクトリがある場合は、次を使用します。

$ cd ~/your/target/directory
$ du -csh 

-c、--totalは総計を生成します
-s、--summarizeは各引数の合計のみを表示します
-h、-人間が読み取れる形式の人間が読み取れる印刷サイズ(1K 234M 2Gなど)

これにより、現在のディレクトリ内のすべてのファイル/フォルダによるメモリ使用量の合計が生成されます。

0
kmario23