find . -iname '*.jar' | xargs du -ks | cut -f1 | xargs echo | sed "s/ /+/g" | bc
Эта команда выполняет поиск всех файлов в текущей директории и ее поддиректориях, имя которых соответствует шаблону «*.jar». Затем она передает список найденных файлов команде du
, которая вычисляет их размер в килобайтах и передает его cut
, чтобы оставить только первое поле каждой строки (в данном случае — размер файла в килобайтах). Затем эти размеры передаются xargs
, который объединяет их в одну строку, разделяя «+» и передает эту строку sed
, которая заменяет все пробелы «+» для использования в арифметическом выражении. Наконец, суммарный размер файлов вычисляется путем передачи строки суммарных размеров команде bc
. В результате выводится общий размер всех файлов в килобайтах, соответствующих заданному шаблону. В качестве альтернативы можно использовать команду du -csh *.jar
для вычисления общего размера всех файлов в текущей директории, имя которых заканчивается на «.jar», без необходимости использования конвейера и других команд.