-
bzip2 "$ файл"
Это будет работать bzip2
по имени файла, сохраненному в переменной "$file". bzip2
сожмет файл в новый файл с именем $file.bz2
.
-
stat -c %s "$file.bz2"
Это работает статистика
на только что созданном компрессе $file.bz2
:
От мужская статистика
:
stat - показать статус файла или файловой системы
-c --format=ФОРМАТ
использовать указанный FORMAT вместо значения по умолчанию
%s общий размер, в байтах
Итак, это статистика
Команда вернет размер файла в байтах нового файла.
-
$(некоторая_команда)
Это называется подстановка команды
Bash выполняет расширение, выполняя команду в среде подоболочки и заменяя подстановку команды стандартным выводом команды.
Так, var=$(некоторая_команда)
сохраняет вывод some_command в переменную вар
.
В итоге:
compress_size_bzip2=$(bzip2 "$file" ; stat -c %s "$file.bz2")
Это работает bzip2
и статистика
в подоболочке. Вывод подоболочки — это размер сжатого файла в байтах, который будет сохранен в переменной $compress_size_bzip2
.
Тем не менее, есть возможности для улучшения:
Вы должны комбинировать команды в подоболочке с &&
, так статистика
работает только тогда, когда bzip2
Был успешен.
Если вам не нужен сжатый файл, вы должны указать bzip2
сжать до стандартного вывода с помощью -с
флаг и использовать туалет -с
сказать его размер:
compress_size_bzip2=$(bzip2 -c "$file" | wc -c)