端末で現在のフォルダーfolderのサイズをリストしますか?


134

現在のディレクトリのフォルダのリスト、またはサイズで指定したフォルダのリストが必要です。

私はduを試しましたが、指定したディレクトリのサイズ(du。./f1)しか取得できず、lsにはフォルダのサイズが表示されません。

スクリプトなしでこれを行うにはどうすればよいですか?


ジャークのように聞こえるのではなく、「man du」;)
ジャクブ

5
ありがとう;-)しかし、私はすでに試してみましたが、何も見つかりませんでした。グーグルデュをお試しください!
ケビン

回答:


212

現在のディレクトリ内のすべてのディレクトリを表示する場合:

$ du -sh */
788K    foo/
500K    bar/
931K    baz/

別のディレクトリから開始して表示するには:

$ du -sh /path/to/dir/*/
48K     /path/to/dir/dir1/
4.0K    /path/to/dir/dir2/
6.7M    /path/to/dir/dir3/
20K     /path/to/dir/dir4/
8.0K    /path/to/dir/dir5/
44K     /path/to/dir/dir6/

ドットで始まる名前のディレクトリが含まれていることを確認する場合は、shopt -s dotglob最初に実行します。


すべての素晴らしい答えに感謝しますが、これは最も簡単なものです。終わりを忘れました/私のテストで。
ケビン

1
-sは要約を意味し、合計を表示し、-hは人間が読めることを意味します
-wranvaud

2
サイズでフォルダを並べ替えます:du -s */ | sort -n
アントンタラセンコ


1
@AntonTarasenko:shopt -s dotglob doc
デニスウィリアムソン

18

Macでは、-max [depth]によって--max-depthオプションが置き換えられます。したがって、ルートドライブの人間が読み取れるリストと2レベルの深さを表示するには、次を使用します。

du -hd 2 /* 

注:このコマンドは、ルートから上位2つのディレクトリレベルを公開します。 これには、ボリュームへの1レベルの移動が含まれ、接続された各ボリュームの各最上位ディレクトリの概要サイズがリストされます。添付内容によっては、このコマンドの完了に時間がかかる場合があります。


13

別のアプローチは--max-depthオプションです。

du -h --max-depth=1 .

現在のフォルダーの下にあるすべてのディレクトリとファイルをサイズとともに一覧表示します。

深さ2は、もう1つのレベルのフォルダーをリストします。


4
Macでは、du -hd 2 .2レベルの深さです。
ライアン14

ああ、はい。また、おそらくFreeBSDでも同様です。情報をありがとう。
マティアスクル14


2

$ du --max-depth=1 /var/www/ | sort -n -r


3
既存の回答を含む古い質問に回答を追加する場合、回答がどのように異なるかを説明し、コマンドのみの回答ではないように説明を含めることをお勧めします。
ジェイソンアラ

3
パラメータの機能を説明するために回答を展開できますか?
fixer1234

2

NCurses Disk Usageシェルコマンドに言及する価値があります

Ncduは、ncursesインターフェイスを備えたディスク使用量アナライザーです。グラフィカルなセットアップ全体を使用できないリモートサーバー上のスペースホグを見つけるように設計されていますが、通常のデスクトップシステムでも便利なツールです。Ncduは、高速でシンプルで使いやすいことを目指しており、ncursesがインストールされている最小限のPOSIXのような環境で実行できる必要があります。


2

受け入れ答えを踏まえ、このコマンドを使用すると、ディレクトリ内のフォルダのサイズが表示されます、そして、あなたが簡単に解釈するためにも、サイズによってそれらが一覧表示されます:

$ du -sh */ | sort -rn

1

Macでは、duHomebrew(brew install coreutils)でGNU(Linux)実装をインストールできます。次に、例えば:

gdu folder -shL --exclude=.git

どこ

  • gduはGNU実装の名前ですdu(デフォルトではHomebrewは隠しません/usr/bin/du);
  • s 指定したフォルダーの総計を生成します(内訳を表示する場合は省略します)。
  • h 人間が読めるサイズを出力します。
  • L シンボリックリンクに従います。
  • --exclude=.git 指定されたフォルダー内のgitディレクトリを除外します(これは単なる例です)。

を追加すると、さらにフォルダを無視できます--exclude=blah。複数のフォルダを一度に指定することもできます(つまり、gdu folder1 folder2 ...)、その場合、optionを使用してすべての小計を単一のサイズに結合できますc


1

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

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

ソース

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.