Разница между du -sh * / и du -hd 1

498
JLix

Я попытался выяснить, насколько велика каждая папка в моей корневой директории. Я cd'ed / и сделал:

ls | xargs du -sh 

результат:

... 1.9M tmp 975M usr 70G var ... 

Затем я пошел в / var / www и сделал:

du -sh 

результат:

81G . 

Я заинтригован: как папка внутри папки на 70 ГБ может быть 81 ГБ?

Немного поэкспериментировав, я обнаружил, что:

du -sh /*/ 

приведет к

... 1.9M tmp 975M usr 70G var ... 

тогда как du -hd 1 приведет к

... 1.9M tmp 975M usr 91G var ... 

Два разных размера для каталога / var, но все остальные каталоги не имеют разницы в размере.

В чем разница между этими двумя вариантами команды du?

Есть идеи?

1
Я не могу точно сказать, что это так (потому что вы не предоставили полных выводов du), но du отслеживает иноды, которые он посещает, поэтому, если существуют жесткие ссылки, будет учитываться только первое вхождение. Kamil Maciorowski 7 лет назад 0
@KamilMaciorowski Спасибо за эту информацию, я еще не знал. Но все остальные каталоги имеют одинаковый размер в обоих методах. Только / var отличается. Если бы это были inode, разве это не должно равняться сумме? JLix 7 лет назад 0
Насколько я могу судить, эквивалентом `du -h -s $ что-то является` du -h -d 0 $ что-то`. С `-d 1` я не вижу те же элементы в списке. Кроме того, в любом из вариантов, inode учитываются только один раз; несколько жестких ссылок не увеличивают размер сообщения. xenoid 7 лет назад 0

0 ответов на вопрос

Похожие вопросы