Как получить список самых больших установленных пакетов.

dpkg --get-selections | cut -f1 | while read pkg; do dpkg -L $pkg | xargs -I'{}' bash -c 'if [ ! -d "{}" ]; then echo "{}"; fi' | tr '\n' '\000' | du -c --files0-from - | tail -1 | sed "s/total/$pkg/"; done


Команда dpkg —get-selections возвращает список всех установленных пакетов в системе. Команда cut -f1 используется для извлечения только имен пакетов из выходных данных предыдущей команды. Команда while read pkg выполняет итерацию для каждого пакета, передавая его в переменную pkg.

Внутри цикла, команда dpkg -l $pkg используется для получения информации о каждом пакете, а xargs -i'{}’ bash -c используется для выполнения последующей команды только если пакет не является директорией. В этом случае команда echo «{}» печатает имя пакета.

Команда tr ‘\n’ ‘\000’ используется для замены символа новой строки на символ NULL, обеспечивая корректное чтение путей файлов в случае, если они содержат пробелы. Команда du -c —files0-from — используется для вычисления размеров файлов, принимая список файлов через стандартный ввод.

Затем команда tail -1 выполняет выборку последней строки, содержащей общий размер всех файлов, а sed «s/total/$pkg/» заменяет слово «total» на имя пакета в выводе.

В результате, команда выводит список самых больших установленных пакетов, их размеры исключая директории, их можно рассматривать как альтернативу другим инструментам для анализа размеров установленных пакетов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *