Перед сохранением файла его можно сжать с помощью Команда compress или Команда pack. Для распаковки сжатых файлов служат команды Команда uncompress и Команда unpack. Разумеется, сжатие и развертывание файлов отнимает время, но зато позволяет сэкономить место на носителе.
Существует несколько способов сжатия файловой системы:
Существует много причин, по которым целесообразно сжимать файлы, однако эти причины можно разделить на две большие группы:
Примечания:
- Во время сжатия в файловой системе может возникнуть нехватка памяти. Команда compress сначала создает сжатые файлы, а затем удаляет несжатые, поэтому ей требуется примерно в полтора раза больше памяти по сравнению с общим объемом всех файлов.
- Сжатие файла может оказаться неудачным из-за того, что он уже сжат. Если команде compress не удается сократить размер файла, происходит ошибка.
Команда compress сокращает размер файлов по алгоритму кодирования Lempel-Zev. Каждый исходный файл, указанный в параметре Файл, будет заменен на сжатый файл, к имени которого будут добавлены символы .Z. Сжатый файл наследует принадлежность, режимы доступа и даты обращения и изменения от исходного файла. Если файлы не указаны, то команда преобразует стандартный ввод в стандартный вывод. Если сжатие не сокращает размер файла, то в стандартный протокол ошибок будет занесено сообщение, и исходный файл заменен не будет.
Сжатые файлы можно вернуть в первоначальное состояние с помощью команды uncompress.
Объем сжатия зависит от размера файла, количества битов на код, указанного в переменной Биты, и распределения часто встречающихся строк. Как правило, в результате сжатия исходный код или английский текст сокращается на 50-60 процентов. Команда compress обычно сжимает эффективнее и быстрее, чем команда pack, применяющая алгоритм кодирования Хаффмана.
Например, для сжатия файла foo и записи результата сжатия в процентах в стандартный протокол ошибок введите:
compress -v foo
Нажмите Enter.
Полный синтаксис приведен в описании команды compress в книге AIX 5L Version 5.1 Commands Reference.
Команда pack сжимает файл или файлы, указанные в параметре Файл, по алгоритму кодирования Хаффмана. В результате сжатия исходный файл будет заменен на упакованный файл с именем, основанным на имени исходного файла (Файл.z), и теми же режимами доступа и датами обращения и изменения. Имя исходного файла должно состоять не более чем из 253 байтов, чтобы к нему можно было добавить суффикс .z. В случае успешного выполнения команды pack исходный файл будет удален. Упакованные файлы можно вернуть в первоначальное состояние с помощью команды unpack.
Если команда pack не может сократить размер файла, то обработка прекращается и выдается сообщение о том, что сократить объем занимаемого пространства невозможно. (Чаще всего такое происходит с небольшими файлами или с файлами с равномерным распределением символов.) Эффективность упаковки зависит от размера исходного файла и распределения символов. Поскольку в начале каждого файла .z записана структура расшифровки, при сжатии файлов размером менее трех блоков место на диске не экономится. Текстовые файлы обычно уменьшаются на 25-40 процентов.
Значение возврата для команды pack - это количество файлов, которые не удалось упаковать. Упаковка не выполняется в следующих случаях:
Например, для упаковки файлов chap1 и chap2 введите:
pack chap1 chap2
Нажмите Enter.
Файлы chap1 и chap2 будут заменены на упакованные версии chap1.z и chap2.z. Команда pack укажет, насколько сократился размер каждого файла в процентах.
Дополнительная информация и полный синтаксис приведены в описании команды pack в справочнике AIX 5L Version 5.1 Commands Reference.