LINUX.ORG.RU

Общий размер файлов в каталоге без учета типа файловой системы


0

1

Хотелось бы узнать чистый размер файлов, а не сколько места уходит на диске. Проблема в том, что под zfs и ext3 получаются разные результаты, потому что для ext3 результат включает байты в полупустых блоках.

du, вроде, так считать не умеет, кто-то предлагал wc, но как это не удобно, может есть специализированные тулзы?

★★

Последнее исправление: sanyock (всего исправлений: 1)

pinkbyte@oas1 ~ $ touch 1
pinkbyte@oas1 ~ $ echo ololo > 1
pinkbyte@oas1 ~ $ du -hs 1
4,0K 1
pinkbyte@oas1 ~ $ du -bs 1
6 1

Это то, что тебе надо?

Pinkbyte ★★★★★
()

du, вроде, так считать не умеет

давно ? а то раньше du -b вроде как считал реальный размер в байтах и суммировал в них-же. Исключения составляли сами каталоги и спец.файлы, для них размер=блок фс.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

пробую это на Debian 6:

root@workstation /download/test_du > ls -al total 64 -rw-r--r-- 1 alex root 56774 Nov 2 08:10 dmesg.txt -rw-rw---- 1 nut nut 84 Jul 15 13:07 upssched.txt root@workstation /download/test_du > du -b 60954 .

хотелось бы, что бы du суммировало то, что показывает ls -al т.е. 56774+84=56858, а не 60954

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

для отдельных файлов показывает правильно:
root@workstation /download > du -bs test_du/*
56774 test_du/dmesg.txt
84 test_du/upssched.txt

а для каталога в целом неправильно:
root@workstation /download > du -bs test_du/
60954 test_du/

мне надо чтобы все дерево обсчитал

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

эт понятно, так и ls можно запускать, может есть какой-нибудь extended du типа du_ex :)

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

тогда в идеале мне бы хотелось du с опцией исключения размера каждого подкаталога из общей суммы

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

find -type f -exec stat -c %s {} \; |awk '{a+=$1} END {print a}'

второй вариант сильно быстрее

ls -AoR |awk '/^-/ {a+=$4} END {print a}'

Вместо awk можно использовать bc

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