Я хочу узнать размер файла с расширением .o (объектный файл) в моей домашней папке.
Я могу найти все объектные файлы, используя
find . -name '*.o'
How могу ли я вычислить общий размер этих файлов?
Использовать флаг -exec для запуска команды du с ; (значение для каждого файла)
find . -name "*.o" -exec du -b {} \; | awk '{total+=$1}END{print total}'
Пример вывода:
$ find . -name "*.txt" -exec du -b {} \; | awk '{total+=$1}END{print total,"bytes" }'
find: ‘./.cache/gvfs-burn’: Permission denied
find: ‘./.cache/unity’: Permission denied
852690242 bytes
find является рекурсивным - это означает, что он просматривает все подкаталоги. Если вы просто хотите получить общее количество всех *.o файлов в текущем каталоге, просто сделайте
du -b -c *.o
с perl:
perl -le 'map { $sum += -s } @ARGV; print $sum' -- *.pdf
Размер всех не скрытых файлов PDF в текущем каталоге.