Команда mscompress позволяет использовать утилиту с соответствующим именем для сжатия файлов с использованием алгоритма Лемпела-Зива LZ77. В отличие от утилиты compress из мира UNIX, данная утилита создает файлы, бинарно совместимые с утилитами командной строки COMPRESS.EXE и EXPAND.EXE от Microsoft. Утилита не позволяет задать степень сжатия или указать какие-либо другие параметры компрессии. Она даже не позволяет указать имя результирующего файла — его имя формируется на базе имени исходного файла путем добавления символа подчеркивания в конец.
Базовый синтаксис команды выглядит следующим образом:
$ mscompress [параметр] [имя файла 1 ...]
Очевидно, что утилита способна сжимать сразу несколько файлов. Она не поддерживает каких-либо параметров, которые могли бы быть полезны рядовому пользователю.
В первую очередь вам придется установить рассматриваемую утилиту; проще всего это сделать с помощью терминала путем исполнения соответствующей вашему дистрибутиву команды.
Команда для Linux Mint, Ubuntu, Debian, Bodhi Linux:
$ sudo apt-get install mscompress
Команда для Fedora Workstation:
$ sudo dnf install mscompress
Компрессию файлов удобнее всего демонстрировать с помощью текстовых файлов, тем более, используемый утилитой вариант алгоритма не может похвастаться высокими для текущих реалий степенями сжатия.
$ du -h test.txt
472K test.txt
Файл занимает 472 Кб дискового пространства. Для сжатия файла достаточно передать утилите его имя.
$ mscompress test.txt && du -h test.txt_
192K test.txt_
Результирующий файл занимает уже 192 Кб. Неплохо, даже несмотря на то, что был сжат текстовый файл.
$ du -h test.txt
472K test.txt
Исходный файл остался на месте.
Для демонстрации компрессии нескольких файлов добавим к рассмотрению небольшой файл сценария:
$ du -h test.*
4,0K test.sh
472K test.txt
Файл сценария занимает 4 Кб, текстовый файл — как и ранее 472 Кб. Для сжатия нескольких файлов следует передать утилите их имена:
$ mscompress test.txt test.sh && du -h test.*_
4,0K test.sh_
192K test.txt_
Можно подумать, что файл сценария не был сжат, но это не так. Его размер меньше размера кластера диска, поэтому следует получить размер файла в байтах.
$ du -b test.sh*
370 test.sh
226 test.sh_
Размер файла уменьшился с 370 до 226 байт, из чего можно сделать вывод, что с файлами малого размера утилита также успешно работает.
Для декомпрессии полученных с помощью утилиты файлов следует использовать отдельную утилиту msexpand.