Как итеративно суммировать размеры файлов с заданными расширениями файлов?

Это обычная проблема. Многие системы «exec» не поддерживают перенаправление. В таком случае вы всегда можете обернуть свои команды в bash (или sh ):

.
bash -c "echo 'hello' > ~/Desktop/testing"
0
10.04.2020, 15:25
2 ответа

В GNU все, что вам нужно, это:

find. -type f -printf '%s\n' | awk '{s+=$0} END{print s+0}'

При любой находке:

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

Чтобы просто найти и просмотреть файлы с определенным расширением в определенном каталоге («папка» — это термин Windows, в терминологии UNIX — это каталог ), поскольку вы, возможно, пытаетесь сделать это:

dir='whatever'
ext='pdf'
find "$dir" -type f -name "*.${ext}" -printf '%s\n'
0
19.03.2021, 02:30

В баш:

for size in `du *.jpg | cut -f1`; do sum=$((sum+size)); done; echo $sum

Интегрируйте это в свой основной цикл, заменив .jpgв моем примере на соответствующую переменную $iв вашем скрипте.

0
19.03.2021, 02:30

Теги

Похожие вопросы