-
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)