У меня есть файл .tar.bz2, который весит около 50 ГБ, и я хотел бы извлечь его, однако я не знаю, сколько места мне понадобится. Есть ли команда для печати степени сжатия файла tar.bz2?
решение1
Я не знаю команды, специально предназначенной для вывода коэффициентов сжатия, но
bzip2 -dc file.tar.bz2 | wc -c
должен показать вам количество байтов, занимаемых несжатым файлом tar. Часть этого пространства занимают метаданные tar, но это должно дать вам приблизительную оценку.
решение2
tar -tvjf file.tar.bz2
Перечислит все файлы в tar-файле, их соответствующие размеры и другую информацию. Вы всегда можете передать вывод через скрипт awk, чтобы сложить числа...
tar -tvjf file.tar.bz2 | awk '{i+=$3;print i" "$0}' | tail
решение3
Поскольку именно сюда поиск привел меня для выполнения того же самого с файлами .tar.gz, то я добавлю, что
tar -tvf file.tar.gz | awk '{i+=$3} END{print i}'
будет работать для них. т.е. просто уберите j, который указывает формат bz2. Я бы опубликовал это как комментарий к посту @TooLazyToLogIn, но у меня нет для этого репутации.