Сжатие файлов с помощью команды pack

Команда pack сжимает файл или файлы, указанные в параметре Файл, по алгоритму кодирования Хафмана.

В результате сжатия исходный файл будет заменен на упакованный файл с именем, основанным на имени исходного файла (Файл.z), и теми же режимами доступа и датами обращения и изменения. Имя исходного файла должно состоять не более чем из 253 байтов, чтобы к нему можно было добавить суффикс .z. В случае успешного выполнения команды pack исходный файл будет удален.

Для разворачивания файлов применяется команда unpack.

Если команда pack не может сократить размер файла, то обработка прекращается и выдается сообщение о том, что сократить объем занимаемого пространства невозможно. (Чаще всего такое происходит с небольшими файлами или с файлами с равномерным распределением символов.) Эффективность упаковки зависит от размера исходного файла и распределения символов. Поскольку в начале каждого файла .z записана структура расшифровки, при сжатии файлов размером менее трех блоков место на диске не экономится. Текстовые файлы обычно уменьшаются на 25-40 процентов.

Значение возврата для команды pack - это количество файлов, которые не удалось упаковать. Упаковка не выполняется в следующих случаях:

  • Файл уже сжат.
  • Размер имени файла превышает 253 байта.
  • Для файла созданы связи.
  • Вместо файла указан каталог.
  • Не удалось открыть файл.
  • Упаковка не приведет к сокращению размера файла.
  • Уже существует файл с именем Файл.z.
  • Не удалось создать файл .z.
  • Во время обработки произошла ошибка ввода-вывода.
Например, для упаковки файлов chap1 и chap2 введите:
pack chap1 chap2
Файлы chap1 и chap2 будут заменены на упакованные версии chap1.z и chap2.z. Команда pack укажет, насколько сократился размер каждого файла в процентах.

Сведения о синтаксисе приведены в описании команды pack книги Справочник по командам, том 4.