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