GNU/Linux >> Linux の 問題 >  >> Linux

Bashで1行コマンドを使用して、各サブディレクトリのサイズをリスト形式で表示しますか?

これを試してください

du -h --max-depth=1

出力

[email protected]:/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 と同様の出力を生成します。

出力

[email protected]:/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 が含まれます ただし、非表示のアイテム (名前がドットで始まる) は除外されます。引数として渡されなかったため、現在の作業ディレクトリの合計サイズもありません。


ディレクトリをサイズ順に表示したい場合があります:

$ 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

ディスク上のすべてのファイル フォルダと隠しファイルのサイズを出力:

[email protected] /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

Linux
  1. Bashコマンドラインの終了コードがわかりやすく説明されています

  2. コマンドラインを使用してLinuxを再起動する方法

  3. コマンドの出力をBashを使用して列ごとに分割しますか?

  1. LinuxでBASHコマンドライン履歴をクリアする方法

  2. 単一行の場合はバッシュ

  3. コマンド ラインからパーティション ラベルを一覧表示する

  1. コマンドラインを使用してLinuxをシャットダウンまたは再起動する方法

  2. コマンドライン引数をBashスクリプトに渡しますか?

  3. Linux – 1つのコマンドラインでCat、Tar、Gzipを使用して.tar.gzファイルを解凍してアーカイブ解除しますか?