Назад | Перейти на главную страницу

Размеры файлов и директорий 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 МБ меньше du -hs . команда. Как мне выяснить, что вызывает 600 МБ? И почему между этими двумя командами такое большое расхождение?

В 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 *. Он предоставит общую сумму, поэтому вам не придется складывать ее вручную.