Архіватори

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Під архівацією розуміють стиснення даних.

Стиснення даних — це процедура перекодування даних, яка проводиться з метою зменшення їх об'єму, розміру, обсягу. Стиснення буває без втрат (коли можливе відновлення вихідних даних без спотворень) або з втратами (відновлення можливе з незначними спотвореннями). Стиснення без втрат використовується при обробці та збереженні комп'ютерних програм і даних. Стиснення з втратами зазвичай застосовується для зменшення об'єму звукової, фото, та відеоінформації. І, як показує практика, стиснення з втратами для такого роду інформації є набагато дієвим. Стиснення базується на видалені надлишку інформації, яка міститься у вихідних даних. Прикладом надлишку є повторення в тексті фрагментів (наприклад, слів природної або машинної мови). Подібний надлишок зазвичай усувається заміною повторюваних послідовностей більш коротким значенням (кодом). Інший вид надлишку пов'язаний з тим, що деякі значення в даних зустрічаються частіше інших. А від так можна замінити дані, що часто зустрічаються більш короткими кодами, а ті, що рідше зустрічаються - більш довгими (ймовірнісне стиснення). Стиснення даних, які не мають властивості надлишку (наприклад випадковий сигнал чи шум), неможливе, зазвичай неможливо стиснути і зашифровану інформацію.


У KDE та Gnome вбудовані графічні архіватори, які підтримують формати архівів: * tar, * gz, * tar.bz2, * zip та ін.

                                                          Ark.png

Існують програми-архіватори та пакувальники:

- пакувальник tar[1];

- архіватор gzip[2];

- архіватор bzip2[3].

В таблиці зазначені основні формати архівів що використовуються операційною системою Linux

                                                 Tab.jpg

Пакувальник compress Сompress упаковує вказаний йому файл і додає до імені розширення. Z. Приклад використання: compress file Для розпакування використовується програма uncompress: uncompress file.Z Зауваження: Якщо вказати ключ "-r" і ім'я директорії, то будуть упаковані / розпаковані всі файли в цій директорії. Але цей ключ ні в якому разі не означає "упакувати всю директорію в один файл"!

Пакувальник gzip Gzip був створений як більш потужна заміна для compress. Використовується він точно так же: gzip file Gzip дозволяє досягати великих ступенів стиснення, ніж compress, і тому майже витіснив його. Оскільки більше стиснення займає більше часу, є можливість вказати gzip'у, як пакувати - швидше (і слабше) або краще (і повільніше). Для цього служать ключі від "-1" (найшвидше стиснення) до "-9" (найбільше стиснення): gzip -9 file За замовчуванням використовується "-6". Для розпакування застосовується програма gunzip. Gunzip вміє також розпаковувати файли .Z і .z.

Пакувальник bzip2 Bzip2 був створений порівняно недавно - в 1996 році. Він використовує при пакуванні алгоритм Burrows-Wheeler (замість Lempel-Ziv, що застосовується в compress / gzip / zip), що дозволяє досягати ще більших ступенів стиснення. Платою за це є кілька більший час упаковки. Використовувані bzip2 ключі майже ідентичні gzip'овим. Але bzip2 за замовчуванням використовує найкраще стиснення ("-9"): Bzip2 file

Архіватор tar Спочатку tar був розроблений для резервного копіювання на стрічку, звідси і його назва - Tape ARchiver. Але оскільки можливість поміщати велику кількість файлів всередину одного надзвичайно зручно (наприклад, для зберігання і передачі груп файлів, наприклад, дистрибутивів), то він отримав більш широке поширення. Взагалі, в кожному * nix є свій підвид tar, зі злегка відрізняються опціями. Але основні опції (створити, розгорнути, перевірити архів) однакові у всіх версіях. У Linux використовується GNU-версія tar, яка доступна в більшості інших Unix (іноді під ім'ям "gtar"). Якщо tar використовується для роботи з файлами-архівами (а не зі стрічкою), то його виклик зазвичай виглядає так: tar <буква-команди> f <ім'я-архіва.tar> [файли ...] В якості команди зазвичай використовується одна з наступних букв: c (Create) створити архів; x (EXtract) розпакувати архів; t (Test) переглянути вміст архіву. Наприклад щоб створити архів / tmp / someconfs.tar, містить файли / etc / fstab і / etc / passwd: tar cf / tmp / someconfs.tar / etc / fstab / etc / passwd Тут відразу треба помітити дві особливості: - По-перше, у файлів, імена яких вказані в абсолютному вигляді, тобто починаються з "/", tar автоматично цей "/" обрізає, щоб пізніше можна було розпакувати архів у будь-яке місце (а не тільки назад в / etc /). - По-друге, при нормальній роботі tar нічого не друкує на екрані (на відміну від pkzip і arj). Щоб він показував оброблювані файли, треба вказати ключ "v": tar cvf / tmp / someconfs.tar / etc / fstab / etc / passwd. Якщо вказати "vv", то крім імен будуть показуватися ті ж атрибути, що і при "ls-l". Взагалі у tar досить нестандартний синтаксис команд: хоча всі ключі і можна вказувати звичайним способом (тобто через "-"), і навіть довгі ключі (з "-"), але зазвичай першим параметром йому вказується поєднання з декількох букв, перша з яких є командою, а решта - ключами. Так, "f" - це теж ключ, який каже, що далі вказано ім'я файлу-архіву (тому "f" треба вказувати в кінці списку). Зауваження: Хоча в більшості систем tar прекрасно розуміє саме такий синтаксис, в деяких старих Unix'ах перед "поєднанням букв" обов'язково треба вказувати "-".

Для перегляду архіву використовується команда "t" (ключ "v" вказує, що треба видавати більш повну інформацію): tar tvf / tmp / someconfs.tar Для розпакування застосовується команда "x": tar xf / tmp / someconfs.tar Tar розгортає дерево-вміст архіву в поточній директорії. Щоб розпакувати архів в іншу директорію, треба або перейти в неї (командою cd), або вказати ключ "-C" (розпаковуємо в директорію / tmp): tar xf / tmp / someconfs.tar-C / tmp Зауваження: Взагалі, призначення ключа "-C" більш загальне, і треба добре собі уявляти, що він буде робити в кожному конкретному випадку. Але при розпакуванні всього архіву таке використання досягає мети. Зазвичай. Tar-файли тримають упакованими (найчастіше gzip'ом). Найпростіше - створити архів і потім упакувати його. Але можна вказати як ім'я архіву "-" - тоді результат буде відправлений на стандартний висновок, і потім передати його gzip'у, стандартний висновок якого перенаправити в файл: tar cf - / etc / fstab / etc / passwd | gzip> someconfs.tgz

При використанні GNU tar (наприклад, в Linux) є ще більш простий спосіб: можна вказати ключ "z", який означає "пропустити файл через gzip": tar czf someconfs.tgz / etc / fstab / etc / passwd Цей же ключ можна вказувати при розпакуванні і перегляді архіву. Зауваження: якщо сказати tar'у створити архів в тій же директорії, звідки беруться вихідні файли (наприклад, в поточному: "tar cf archive.tar."), То сам. Tar-файл теж потрапить в архів - точніше, та його частина, що була створена на момент початку додавання його самого. Справа в тому, що tar (на відміну від Dos'овскіх pkzip і arj) не перевіряє, що файл, який він збирається помістити в архів, - це сам архів. Тому краще самі файли-архіви створювати поза того дерева, з якого беруться файли, або прямо вказувати список всіх файлів, які треба покласти в архів.

Сумісність з zip / unzip, unarj Для маніпуляцій с. Zip-файлами практично в будь-якому * nix є програми zip і unzip. Ключі zip і unzip майже ідентичні оним у pkzip / pkunzip. Отримати коротку довідку по ним можна, запустивши яку з цих програм без параметрів. Для розпакування. Arj-файлів є програма unarj. На відміну від "справжнього" arj, вона не вміє створювати. Arj-архіви, не оптимізована по швидкості і підтримує лише невелику кількість опцій. Підтримуються часто використовувані опції arj - перегляд і розпакування, але при розпакуванні немає можливості вказати, які файли треба витягати - можна розпакувати тільки весь архів. Коротку довідку можна отримати, набравши просто "unarj" без параметрів. Пакувальник-архіватор RAR давно заслужив авторитет у користувачів Windows, але от в Linux до сих пір найбільш вживані gzip і bzip2.