Неверный размер каталога Centos 6.5 при использовании команды du

Я запускаю команду du в одном из моих каталогов веб-сайтов и получаю 2 разных результата, я не понимаю, какой из них точный и почему есть большая разница, здесь и команда, и вывод.

du -hsc directory_name/
5.3G    directory_name/
5.3G    total


du -hsc directory_name/*
4.0K    directory_name/announcements.php
4.0K    directory_name/articles.php
1.2M    directory_name/election2011
4.3M    directory_name/error_log
78M directory_name/files
3.0G    directory_name/php
3.1G    total

Спасибо

2 ответа

Решение

Не могли бы вы опубликовать команду и результаты в удобном для чтения формате, используя следующие строки?

Я подозреваю, что размер ничем не отличается...

Когда вы печатаетеdu -hsc dir_name"Вы спрашиваете о размере"dir_name".

Но когда вы печатаетеdu -hsc dir_name/*"Вы запрашиваете размер всех каталогов и файлов внутри"dir_name". Таким образом, сумма всех файлов, полученных"du -hsc dir_name/*"должен составить сумму"du -hsc dir_name".

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ

Я нашел следующее ( http://www.linfo.org/du.html):

"Несколько похожий отчет предоставляется с использованием подстановочного знака" звездочка "( *), который будет соответствовать любому символу или символам. Например, следующая команда выведет список размеров всех каталогов в дереве, начинающемся с текущего каталога:

ду *

Однако в списке перечислены только файлы в родительском каталоге, а не в его подкаталогах. Кроме того, не предоставляется итоговое значение для дерева каталогов в целом.

Совместное использование параметра -s и подстановочного знака "звезда" приведет к тому, что du сообщит имена и размеры только тех файлов и каталогов, которые содержатся непосредственно в самом каталоге верхнего уровня (и не выведет список имен каких-либо его подкаталогов и файлов. в них). Размер каждого перечисленного каталога, конечно, включает все его файлы и подкаталоги (включая все файлы в них). Например, такой отчет о дереве каталогов, начинающемся с текущего каталога, будет представлен следующим:

du-hs *

Подстановочный знак также можно использовать для фильтрации выходных данных, чтобы перечислять только те элементы, имена которых начинаются, содержат или заканчиваются определенными символами или последовательностями символов. Например, в следующем сообщении будут указаны имена и размеры всех каталогов и файлов в текущем каталоге, имена которых начинаются с буквы s, а также имена и размеры всех уровней подкаталогов этих каталогов независимо от того, с чего начинаются их имена. с:

du -hs * "

Обратите внимание, где я выделился. Похоже, подстановочный знак получает только каталоги в родительском каталоге, а сумма не указана.

Если имя_каталога содержит скрытые файлы, они будут учитываться в первой команде, а не во второй. Шаблон directory_name/* не включает в себя файлы, которые начинаются с. (это включает диск для директории directory_name).

Другие вопросы по тегам