2013-02-19 15:34:27 +0000 2013-02-19 15:34:27 +0000
104
104

各サブディレクトリのサイズをリスト形式で表示するには、Bash の 1 行コマンド?

ls -lを実行したときのように、ディレクトリとそのサイズのリストをリスト形式で取得したいのですが、

を実行したときのように、ディレクトリとそのサイズのリストを取得できますか?

これができる一行コマンドはあるのでしょうか?他の人はこれを出力するだけの長いコマンドを持っているのを見ました。それが長すぎるんだよね。

これができるコマンド、または簡単に入力できるコマンドの組み合わせは?du -h はそれを出力してくれますが、私が望むものではないサブフォルダを全て表示してくれます。

回答 (4)

126
126
126
2013-02-19 15:36:20 +0000
du -h --max-depth=1

出力

oliver@home:/usr$ sudo du -h --max-depth=1
24M ./include
20M ./sbin
228M ./local
4.0K ./src
520M ./lib
8.0K ./games
1.3G ./share
255M ./bin
2.4G .

代替

--max-depth=1 が少し長すぎる場合は、次のように使用してみることもできます。

du -h -s *

これは -s (--summarize) を使用し、デフォルトではフォルダ自体のサイズのみを表示します。カレント作業ディレクトリ内のすべての要素を渡すことで(*)、--max-depth=1と同様の出力が得られます。

出力

oliver@cloud:/usr$ sudo du -h -s *
255M bin
8.0K games
24M include
520M lib
0 lib64
228M local
20M sbin
1.3G share
4.0K src

この違いは微妙です。前者の方法では、現在の作業ディレクトリの合計サイズと、そこに含まれるすべてのフォルダの合計サイズが表示されますが、深さ1までしか表示されません。したがって、シンボリックリンクlib64は出力に含まれますが、隠しアイテム(名前がドットで始まるもの)は除外されます。また、引数として渡されていないため、カレント作業ディレクトリの合計サイズが不足しています。

79
79
79
2016-06-17 23:04:29 +0000

おそらく、

$ du -hs * | sort -hr

856M lib
746M share
612M lib64
312M src
267M java
239M bin
179M sbin
173M local
93M i686-w64-mingw32
72M libexec
26M include
20M puppet
772K X11R6
20K man
4.0K games
4.0K etc
0 tmp
```というサイズ順のディレクトリを見たいと思います。
6
6
6
2014-11-06 14:52:37 +0000

ディスク上のすべてのファイルフォルダと隠しファイルのサイズを印刷します。

el@dev /home/el $ du -sh `ls -a`
258M .
265M ..
4.0K .classpath
258M .git
4.0K .gitignore
9.0K nbactions.xml
12K README
20K .README.swp
4.0K run.sh
23K XmlPostPropagate.php
3
3
3
2016-06-12 12:29:56 +0000

NCurses Disk Usage ](https://dev.yorhel.nl/ncdu) シェルコマンドについて言及しておきます。

Ncdu は ncurses インターフェイスのディスク使用量アナライザです。グラフィカルなセットアップが利用できないリモートサーバ上のスペースの問題を発見するために設計されていますが、通常のデスクトップシステムでも有用なツールです。Ncdu は速く、シンプルで使いやすいことを目指しており、ncurses がインストールされている最小の POSIX ライクな環境でも動作するようになっています。

関連する質問

6
10
11
5
3