Есть ли простой способ агрегировать использование диска по типу файла в каталоге?

У меня есть папка, в которой 10 папок, в которых куча файлов. Я хотел бы видеть, не какие файлы конкретно используют больше всего, а какие типы файлов (.png, .jpg, .txt и т. д.) используют больше всего дискового пространства. Я видел предыдущий пост, в котором перечислялось использование диска для типа файла с указанием расширения, но я хочу показать его для всех расширений, которые существуют в моем наборе файлов, что затрудняет это.

Это стандартная установка Debian, и у меня нет разрешения на установку новых утилит.

Бонусные баллы, если его можно запустить из папки, содержащей 10 папок, и показать ее для всех 10.


person Kwahn    schedule 28.06.2018    source источник
comment
Пожалуйста, избегайте вопросов Дайте мне код. См. также Как много исследований ожидается от пользователей Stack Overflow?   -  person jww    schedule 01.07.2018
comment
Странно, я мог бы поклясться, что говорил о некоторых исследованиях, которые я провел для своего вопроса. Должно быть, это было мое воображение. Забавно, что тема, на которую вы ссылаетесь, была ответом на то, что люди делают именно то, что вы сделали!   -  person Kwahn    schedule 09.07.2018


Ответы (1)


Возможно, это не самый оптимизированный способ, но он должен выполнять свою работу:

#!/bin/bash

for ext in `find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u`; do
    echo $ext": "`find . -name "*."$ext -print0 | du -ch --files0-from=- | tail -1`
done
person runwuf    schedule 28.06.2018
comment
Работает отлично! Я понял, что мои файлы по какой-то причине имели тип файла перед числом (формат: имя файла.расширение.случайное число), поэтому мне пришлось настроить регулярное выражение Perl, чтобы оно соответствовало этому, но мой запрос был выполнен идеально, и это было легко изменить. Большое спасибо! - person Kwahn; 28.06.2018
comment
@Kwahn, рад, что это сработало! благодаря вам я никогда не думал о проверке/очистке по типам файлов! - person runwuf; 29.06.2018