du -hs * のファイルとディレクトリのサイズは du -hs と一致しません

du -hs * のファイルとディレクトリのサイズは du -hs と一致しません

bashコマンドを実行するとdu -hs .、出力は次のようになります。

1.2G .

bashコマンドを実行するとdu -hs *、出力は次のようになります。

108K    action
4.0K    activate.php
8.0K    browse.php
584K    captcha
164K    class
4.0K    clearcache
388K    cms
4.0K    comment.complete.php
4.0K    contact.php
530M    docs
116K    documentation
24K     DONE.txt
21M     em
4.0K    footer.php
4.0K    forgot.php
4.0K    header.php
196K    images
264K    includes
8.0K    index.php
168K    js
4.0K    login.php
4.0K    logout.php
4.0K    mail.confirmation.php
4.0K    mail.php
4.0K    news.item.php
4.0K    news.php
4.0K    profile.edit.php
4.0K    profile.php
4.0K    reset.confirmation.php
4.0K    robots.txt
4.0K    signup.confirmation.php
4.0K    signup.php
4.0K    svnstatus
4.0K    svnunknown
4.0K    TODO.txt
16M     tpl

出力のファイルとディレクトリのサイズをすべて合計するとdu -hs *、コマンドより約 600 MB 不足しますdu -hs .。600 MB 不足する原因を突き止めるにはどうすればよいでしょうか。また、2 つのコマンドの間にこれほど大きな差があるのはなぜでしょうか。

答え1

このdu -hs *コマンドは、ワイルドカードに一致するファイルのみを報告します。ワイルドカードには、ピリオドで始まるファイルやディレクトリは含まれません。

このdh -shコマンドは.(現在のディレクトリ) をチェックし、ピリオドで始まるファイルも含め、そのディレクトリの下にあるすべてのものをチェックします。

例えば:

$ du -shc *
2.0M    file.1
4.0M    file.2
5.9M    file.3
 12M    total

$ du -shc
 24M    .
 24M    total

$ ls -la 
total 48576
drwxr-xr-x    8 John  Bovi      272 Aug 20 14:26 .
drwxr-xr-x  243 John  Bovi     8262 Aug 20 14:25 ..
-rw-r--r--    1 John  Bovi  2097152 Aug 20 14:26 .file.1
-rw-r--r--    1 John  Bovi  4145152 Aug 20 14:26 .file.2
-rw-r--r--    1 John  Bovi  6193152 Aug 20 14:26 .file.3
-rw-r--r--    1 John  Bovi  2097152 Aug 20 14:26 file.1
-rw-r--r--    1 John  Bovi  4145152 Aug 20 14:26 file.2
-rw-r--r--    1 John  Bovi  6193152 Aug 20 14:26 file.3

余談:

簡単にするには、 の代わりにdu -hs *を使用しますdu -hsc *。合計が表示されるので、手動で合計する必要がありません。

関連情報