`ls -lS`はディレクトリの実際のサイズを表示しません。

`ls -lS`はディレクトリの実際のサイズを表示しません。

ls -lS私のホームディレクトリでコマンドを使用しました。このコマンドは、ディレクトリの内容をサイズ別にリストする必要があります。これがこのコマンドを実行した後に得られる結果です。

total 10148
-rw-rw-r--  1 rahul rahul 8053159 May 15 15:35 Costa_ODE.pdf
-rw-rw-r--  1 rahul rahul 1755507 May 15 17:33 gnuplot.pdf
-rw-rw-r--  1 rahul rahul  218048 May 13 22:14 out.log
-rw-rw-r--  1 rahul rahul   98131 Feb 16 01:53 hs_err_pid8639.log
-rw-rw-r--  1 rahul rahul   12364 Apr 19 14:01 Untitled 1.csv
drwxr-xr-x  4 rahul rahul   12288 Jun  6  2016 cfitsio
-rw-r--r--  1 rahul rahul    8980 Feb  7  2016 examples.desktop
drwxrwxr-x  2 rahul rahul    4096 Mar 10 12:24 bin
drwxrwxr-x  8 rahul rahul    4096 May  8 14:51 boxfitv2
drwxrwxrwx  2 rahul rahul    4096 Jan 30 11:50 dao2
drwxrwxr-x  2 rahul rahul    4096 Mar 12  2016 deja-dup
drwxr-xr-x  6 rahul rahul    4096 May 16 02:12 Desktop
drwxr-xr-x  3 rahul rahul    4096 May 15 10:53 Documents
drwxr-xr-x  5 rahul rahul    4096 May  8 14:09 Downloads
.
.
.
.

これはかなり多くのリストです。しかし、私はあなたがDesktopのようなサブディレクトリに集中することを願っています。サイズは4096バイトで表示されます。ただし、デスクトップの詳細を表示しようとすると、これが表示されます。

デスクトップサイズ

つまり、このコマンドはls -lSデスクトップやその他のサブディレクトリの内容のサイズを計算しません。これを行う方法はありますか?


編集する:

ls -lshコマンド出力

total 10M
4.0K drwxrwxr-x  2 rahul rahul 4.0K Mar 10 12:24 bin
4.0K drwxrwxr-x  8 rahul rahul 4.0K May  8 14:51 boxfitv2
4.0K -rw-rw-r--  1 rahul rahul 3.2K May 13 13:28 c.c
 12K drwxr-xr-x  4 rahul rahul  12K Jun  6  2016 cfitsio
7.7M -rw-rw-r--  1 rahul rahul 7.7M May 15 15:35 Costa_ODE.pdf
4.0K drwxrwxrwx  2 rahul rahul 4.0K Jan 30 11:50 dao2
   0 -rw-rw-r--  1 rahul rahul    0 May 13 20:37 default.txt
4.0K drwxrwxr-x  2 rahul rahul 4.0K Mar 12  2016 deja-dup
4.0K drwxr-xr-x  6 rahul rahul 4.0K May 16 17:11 Desktop
4.0K drwxr-xr-x  3 rahul rahul 4.0K May 15 10:53 Documents
4.0K drwxr-xr-x  5 rahul rahul 4.0K May  8 14:09 Downloads
 12K -rw-r--r--  1 rahul rahul 8.8K Feb  7  2016 examples.desktop
.
.
.

du -sh ~/Desktopコマンド出力

80M /home/rahul/Desktop

答え1

ls -lSディレクトリの実際のサイズを表示します:ディレクトリ自体+そのディレクトリに含まれるすべてのファイルへの参照。

du代わりに使用できますls

du -ha -d 1 | sort -hr

du:ディレクトリのファイルスペース使用量を繰り返し推定します。

h:人が読める

a:ディレクトリだけでなく、すべて

d 1:max深さ1、現在のディレクトリのディレクトリのみを確認します。

sort -hr:降順でソート

答え2

lsディスプレイサイズ定期的なファイルのサイズ(またはディレクトリの場合は内容だけでなく、対応するinodeをすばやく確認する方法がないため、通常のファイルの場合はサイズがわかっているため、正確かつ迅速に確認できます)。

実際、このフィールドはファイルが表す内容によって異なります。

  • 一般ファイルの場合:実際のサイズを表示します。
  • シンボリックリンク(symlink、ln -s source dest)の場合:シンボリックリンク名の長さ(シンボリックリンクファイルの内容なので)。 (例:シンボリックリンク/dev/fd -> /proc/self/fd:正確に13文字の宛先パス()があるため、/ p r o c / s e l f / f dファイルls -lサイズを指すのではなく、「13」が列5に表示されます。)
  • ディレクトリの場合:1つのinodeサイズ(ディレクトリエントリの内容が1つに収まる場合)または複数のinode(ディレクトリエントリのリストを記述するために複数のinodeが必要な場合)。これがほとんどのファイルが4096の理由です。通常、ファイル内には多くのファイルがないため、すべて1つのinodeに収まります。これは通常デフォルトで4096バイトです。ディレクトリに多くのファイルを配置すると、ファイルが増えます(ディレクトリ自体を再作成しない限り、後で残る可能性が高くなります)。
  • パイプやその他のファイルタイプの場合:通常、サイズに関連付けられているフィールドがサイズである場合とそうでない場合があります(例:ブロックデバイス(例:/ dev / hd *ファイル)の場合、サイズは表示されませんが、ペアmajor, minorリングしてください。情報を参照してください。してくださいman mknodman ls

ディレクトリ+サブディレクトリの内容の合計を確認するには、次の手順を実行します。

  • du /some/path #各ディレクトリを表示します。その内容の合計(サブディレクトリを含む)、その下、およびその下の各ディレクトリを表示します。/some/path

  • du -s /some/path#レベル1のみを表示します。つまり、/some/pathの合計のみを表示します。

  • du -S /some/path#サブディレクトリを除く各ディレクトリの内容を表示します。 /some/pathのどのサブディレクトリが大きいかを正確に知るのに役立ちます。

バラよりhttps://linux.die.net/man/1/du詳細については。

関連情報