Проект OpenNet MAN gunzip (1) Команди та прикладні програми користувача рівня (FreeBSD та
gzip [-acdfhlLnNrtvV19] [-S суфікс] [файл. ] gunzip [-acfhlLnNrtvV] [-S суфікс] [файл. ] zcat [-fhLV] [файл. ]
Gzip зменшує розмір перелічених файлів, використовуючи кодування Лемпеля-Зіва (LZ77). Там, де це можливо, кожен файл замінюється архівом з розширенням .gz з таким же власником, часом доступу та модифікації. (Розширення за промовчанням - gz для VMS, z для MSDOS, OS/2 FAT, Windows NT FAT та Atari). Якщо не вказано жодного файлу, або як ім'я файлу вказано "-", стандартний потік введення стискається в стандартний потік виведення. Gzip намагатиметься стиснути лише звичайні файли. Зокрема він проігнорує символічні посилання.
Якщо ім'я стисненого файлу надто довге для файлової системи, де він знаходиться, gzip урізає його. Gzip намагається вкоротити лише ті частини імені файлу, які довші за 3 символи (на частині файл розбивається точкою). Якщо ім'я файлу складається лише з коротких частин, коротшають лише найдовші частини. Наприклад, якщо ім'я файлу обмежено 14 символами, gzip.msdos.exe стискається в gzi.msd.exe.gz. Імена не коротшають на файлових системах, що не мають обмеження за довжиною імені файлу.
За промовчанням gzip зберігає в стислому файлі його оригінальне ім'я та тимчасову мітку. Це потрібно для розархівування файлу з опцією -N. Вона використовується, якщо ім'я стисненого файлу було зрізано або тимчасова мітка під час переміщення файлу не збереглася.
Стиснуті файли можуть бути відновлені в початковий стан командою gzip -d або gunzip або zcat. Якщо початкове ім'я файлу, збережене в архіві, не допускається файловою системою, в якій він знаходиться, то створюється нове ім'я з початкового за правилами цієї системи.
gunzip бере список файлів з командного рядка та замінює коженфайл з розширенням .gz, -gz, .z, -z, _z або .Z і починається правильним заголовком розархівованим файлом без цього розширення. gunzip також розпізнає спеціальні розширення .tgz та .taz як скорочення від .tar.gz та .tar.Z відповідно. Стискаючи файл, gzip за потребою використовує розширення .tgz замість усічення імені файлу з розширенням .tar .
Файли, стиснуті zip-ом, можуть бути розпаковані gzip-ом тільки якщо вони містять один файл, стислий методом 'deflation'. Ця функція призначена тільки для конвертування tar.zip-файлів у формат tar.gz. Для розпакування zip-архівів, які містять кілька файлів, замість gunzip використовуйте unzip.
zcat ідентичний gunzip-c. (На деяких системах zcat може бути встановлений як gzcat, з метою забезпечення збереження оригінального посилання на compress.) zcat розпаковує або файли за списком з командного рядка, або зі стандартного потоку введення із записом розархівованих даних стандартний потік виведення. zcat розпаковує файли з правильним заголовком незалежно від того, містять вони суфікс .gz чи ні.
Gzip використовує алгоритм Лемпеля-Зіва, застосовуваний у zip та PKZIP. Отримувана величина стиснення залежить від розмірів вхідних даних і кількості байтових послідовностей, що повторюються. Текстові дані, такі як вихідні коди або тексти англійською мовою, в середньому стискаються на 60-70%. Стиснення зазвичай виходить набагато краще, ніж при використанні алгоритму LZW (використовується в compress), кодуванні Хаффмана (використовується в pack) або адаптивному кодуванні Хаффмана (compact).
Стиснення здійснюється завжди, навіть якщо запакований файл виходить трохи більшим за оригінал. У найгіршому випадку розмір файлу збільшується на кілька байт заголовка gzip плюс по 5 байт накожен блок розміром 32 Кб, що становить 0.015% великих файлах. Зауважте, що фактична кількість зайнятих файлом блоків на диску практично ніколи не збільшується. gzip під час стиснення/розпакування зберігає права доступу та тимчасові мітки файлів.
Розмір стиснутого файлу виводиться як -1 для файлів не у форматі gzip, таких як .Z-файли. Для отримання розміру стиснутого файлу в таких випадках можна використовувати команду:
У комбінації з ключем --verbose відображаються також такі дані:
Методи стиснення, що підтримуються на даний момент: deflate, compress, lzh (compress-H в SCO) та pack. CRC відображається як ffffffff для файлів не у форматі gzip.
З ключем --name ім'я оригінального файлу, дата та час беруться з самого архіву, якщо є.
З ключом --verbose також виводяться загальний розмір та коефіцієнт стиснення всіх файлів, за умови, що всі розміри відомі. З ключем --quiet не з'являється заголовок і підсумкова частина. -L --license Показати ліцензію gzip і вийти. -n --no-name При стисненні не зберігати за промовчанням ім'я вихідного файлу та тимчасові мітки (оригінальне ім'я завжди зберігається, якщо ім'я архіву доведеться усікнути). При розпакуванні не відновлювати ім'я вихідного файлу, навіть якщо воно збережене (тільки видалити суфікс gzip з імені архіву), і не відновлювати оригінальні тимчасові мітки (взяти їх зі стисненого файлу). Ця опція при розпакуванні застосовується за умовчанням. -N --name При стисненні завжди зберігати ім'я та тимчасові мітки вихідного файлу (за замовчуванням). При розпакуванні відновлювати ім'я та тимчасові мітки вихідного файлу, якщо вони є. Ця опція корисна в системах, що мають обмеження на довжину імені файлу, або при втраті тимчасових міток файлу в процесі його переміщення. -q --quiet Не виводитипопередження. -r --recursive Рекурсивно розбирати дерево каталогів. Якщо в списку з командою рядка вказано якийсь каталог, gzip зайде в нього і стисне всі файли, що в ньому знаходяться (або розпакує їх у випадку з gunzip). -S .суф --suffix .суф Використовувати суфікс .суф замість .gz. Може бути задано будь-яке закінчення, але суфіксів, відмінних від .z та .gz краще уникати, щоб не сплутати їх з іншими під час перенесення файлів на інші системи. Відсутність суфікса змушує gunzip намагатися розпакувати всі вказані файли незалежно від їх закінчення, наприклад:
Попередні версії gzip використовували суфікс .z, але це було змінено, щоб уникнути конфлікту з pack .(1). -t --test Тест, перевірка цілісності стисненого файлу. -v --verbose Детально. Показувати ім'я та зменшення розміру у відсотках для кожного файлу під час стиснення або розпакування. -V --version Версія. Показати номер версії та параметри збирання, потім вийти. -# --fast --best Управління швидкістю стиснення за допомогою цифри # , де -1 або --fast позначає найшвидший метод стиснення (гірше стискається), і -9 або --best позначає найповільніший (кращий ступінь стиснення). Рівень стиснення за замовчуванням дорівнює -6 (добре стиснення за середньої швидкості).
РОЗШИРЕНЕ ВИКОРИСТАННЯ
Декілька стислих файлів можна об'єднати в один. У цьому випадку gunzip розпакує всі файли одночасно. Наприклад:
У разі пошкодження одного з файлів у .gz-архіві інші можуть бути відновлені (якщо видалити з архіву пошкоджений файл). Вищий стиск можна отримати при архівуванні всіх файлів одночасно:
стискає краще, ніж
Якщо потрібно перепакувати об'єднані файли для досягнення більшого стиснення, виконайте:
Якщо в архіві кілька файлів, то розмір стиснених даних і CRC,показуються по ключу --list, відносяться лише до останнього файлу. Якщо вам потрібний стислий розмір всіх файлів, можна використовувати:
Якщо ви бажаєте створити єдиний архів з безліччю файлів так, щоб їх потім можна було витягти незалежно один від одного, використовуйте інші архіватори, такі як tar або zip. GNU tar підтримує ключ -z, яким викликається безпосередньо gzip. gzip створений як додаток до tar-у, а не як заміна.
Змінна оточення GZIP може містити набір за замовчуванням ключів для gzip . Ці ключі обробляються першими і можуть бути перевизначені явною їх вказівкою в командному рядку. Наприклад:
На системах Vax/VMS щоб уникнути конфлікту з командою виклику програми така змінна оточення називається GZIP_OPT.
ДИВИСЬ ТАКОЖ
Формат файлу gzip описаний P. Deutsch в "GZIP file format specification version 4.3", Internet RFC 1952 (May 1996). Формат розархівації zip описаний P. Deutsch в "DEFLATE Compressed Data Format Specification version 1.3", Internet RFC 1951 (May 1996).
ДІАГНОСТИКА
Код повернення нормальної ситуації дорівнює 0. Якщо виникла помилка, код повернення 1. Якщо вийшло попередження, код повернення 2. Використання: gzip [-cdfhlLnNrtvV19] [-S suffix] [file . ] Invalid options були specified on the command line. У командному рядку було вказано неправильні ключі. file : not in gzip format Файл, вказаний gunzip, не стиснутий. файл: Corrupt input. Use zcat to recover some data. Стиснутий файл пошкоджено. Для відновлення частини даних скористайтеся zcat. Дані до точки пошкодження можуть бути відновлені командою
ЗАСТЕРЕЖЕННЯ
При записі стиснених даних на стрічку зазвичай потрібно доповнювати архів нулями до кінця блоку. Коли архів рахований зі стрічки і передано gunzip на розпакування, gunzipвиявляє, що після стислих даних йде сміття, і за умовчанням видає попередження. Щоб вимкнути попередження, використовуйте ключ --quiet. Цей ключ може бути заданий у змінному оточенні GZIP , наприклад:
У наведеному прикладі gzip неявно викликається ключем -z GNU tar. Майте на увазі, що для запису та читання архіву зі стрічки необхідно використовувати той самий розмір блоку (опція -b в tar). (Цей приклад має на увазі, що ви використовуєте версію tar від GNU.)
Формат gzip представляє вхідний розмір модуля 2^32, таким чином опція --list повідомляє неправильні розміри не стислих файлів і коефіцієнти стиснення для архівованих файлів розміром 4 і більше гігабайт. Щоб обійти цю проблему, ви можете скористатися наступною командою, щоб визначити справжній розмір великого файлу, що розпаковується:
Ключ --list видає розмір -1 і CRC як ffffffff, якщо архів знаходиться на пристрої з послідовним доступом.
У деяких випадках ключ --best дає гірше стиснення, ніж метод за замовчуванням (-6). Деякі файли, що містять надмірну інформацію, compress стискає краще, ніж gzip .
ЛІЦЕНЗІЙНУ УГОДУ
Цим надається право копіювати та розповсюджувати модифіковані копії цього посібника на умовах ліцензійної угоди для дослівного копіювання, за умови, що повний остаточний результат поширюватиметься на умовах, ідентичних умовам розповсюдження цього документа.