Кажется, единственный способ использовать mbp - это изменить главный загрузочный раздел на УДАЛИТЬ EFI и перейти на устаревший MBP.
В AWK:
{ sum += $1 }
END { print sum }
Итак,
du -b /tmp/* | awk '{ sum += $1 } END { print sum }'
Обратите внимание, что результат будет неправильным, если каталоги в /tmp
сами имеют подкаталоги, потому что du
производит промежуточные итоги по каталогам и их дочерним элементам.
du -s
правильно рассчитает для вас сумму (по всем подкаталогам и файлам в /tmp
, включая скрытые):
du -sb /tmp
и du -c
также правильно вычислят сумму перечисленных каталогов и файлов:
du -cb /tmp/*
Это просто, вы можете использовать:
du -b /tmp/* | awk 'BEGIN{i=0} {i=i+$1} END{print i}'
Если вы не используете подстановочный знак, если вы используете имя каталога, такое как /tmp
, вам нужно избегать последней записи, потому что вывод du -b /tmp
похож на:
size1 file1
size2 file2
size_total.
Так что теперь вам следует избегать этой последней записи, поэтому используйте:
du -b /tmp | awk 'BEGIN{i=0} {if( $2 != "." ){i=i+$1}} END{print i}'
Однако вы также можете использовать опцию -s
, она рассчитает сводку за вас, после чего вам не нужно добавлять значения, просто распечатайте последнее, т.е.:
du -s directory
Вы также можете получить общую сумму выбранных файлов с помощью du -c
. Это работает, даже если аргумент du
не является каталогом, чего нельзя сказать оdu -s
:
$ du -sb file1 file2
17 file1
18 file2
$ du -cb file1 file2
17 file1
18 file2
35 total
Кстати, для интерактивного использования я рекомендую добавить опцию -h
вместо -b
или любого другого множителя с размером блока -. Это напечатает размер в удобочитаемом формате единиц.
$ du -ch file1 file2
4.0K file1
4.0K file2
8.0K total