LINUX.ORG.RU

Чудеса с командой du


0

0

Создаю папку /home/aaa в ОП RedHat 4. В этой дирректории расположен единственный текстовый файл asa размером файла 217 байт. Результат команды " du -hb --apparent-size /home/aaa/asa" такой: "217 /home/aaa/asa". Команда "du -hb --apparent-size /home/aaa" сообщает следующее: 4313 /home/aaa". Почему 4313, а не 217? И если команда du неподходящая, какой лучше воспользоваться для определения размера папки?

4313-271=4096

А теперь пробуем то же самое на пустом каталоге

ls -lRa каталог|awk '/^-/{a+=$5} END {print a}'

правда этот вариант не универсальный

anonymous
()

Спасибо! Теперь размер считает правильно. Запомню этот способ, а почему он не универсальный? Должен быть универсальный способ, есть же менеджер WinCP, он-то как-то правильно всегда рекурсивно считает размер :)

nervouselectronic
() автор топика
Ответ на: комментарий от nervouselectronic

Потому что надо быть аккуратнее с именами файлов

~$ mkdir -- "- a b v 600 aa"
~$ ls -lRa "- a b v 600 aa"|awk '/^-/{a+=$5} END {print a}'
ls: invalid option --  
Try `ls --help' for more information.

~$ ls -lRa -- "- a b v 600 aa"|awk '/^-/{a+=$5} END {print a}'
600
~$ ll -- -\ a\ b\ v\ 600\ aa/
total 0

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.