Intereting Posts
Каков наиболее эффективный способ grep для двух совершенно разных вещей и присвоения значений отдельным переменным? Как я могу отменить команду 'sudo' перед вводом пароля? Отказоустойчивость VM на KVM Как правильно распределять пропускную способность между IP-адресами с помощью tc? iptables – разрешить трафик из туннеля GRE с опцией reject-with Как открыть файлы с помощью приложения для вина из mc? Запись сеанса «скрипт» заставляет меня выйти дважды Как проверить, поддерживает ли `wget` определенную функцию программно? SSH: отображение предупреждения при использовании (устарело) ssh-dss key Пропуск аппаратных часов и установка системного времени от NTP Блокировка блокировки SMTP с помощью белого списка Каковы различия в редактировании UTS_RELEASE и EXTRAVERSION? Есть ли способ рассказать, как пользователь аутентифицировал свое соединение SSH? т.е. будь то по паролю или с помощью открытого ключа? Заменить рабочий каталог на 2 терминала одновременно Как реплицировать установленный пакет из одного экземпляра Fedora в другой?

Unix-эквивалент `du -sb` для получения суммарного размера в байтах

В Linux с использованием GNU du для вычисления рекурсивного каталога в байтах я могу запустить:

 du -sb /etc 

Что эквивалентно синтаксису BSD du на основании того, что параметр -b недоступен?

Моя первая мысль …

 find $HOME | xargs stat -f%z | awk '{ s+=$1 } END { print s }' 

… обходит через $HOME , получает размеры файлов в байтах от stat и суммирует их с помощью awk .

Проверено на NetBSD7.

По умолчанию в BSD du блоков будет отображаться в 512-байтовых блоках, поэтому значение можно умножить. Вот пример в bash:

 echo $(($(du -s /etc | cut -f1) * 512)) 

Размер блока можно изменить с помощью BLOCKSIZE , но минимальный размер блока равен 512. Вот после изменения:

 echo $(($(BLOCKSIZE=1024 du -s /etc | cut -f1) * 1024))