Відмінності між версіями «Bzip2»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
(не показані 3 проміжні версії цього учасника)
Рядок 1: Рядок 1:
'''bzip2'''— безкоштовна вільна утиліта командної строки(а також алгоритм) з відкритим початковим кодом для стиснення даних.
+
                                          '''bzip2'''
 +
стиснення і розпакування файлів
 +
'''Синтаксис'''
  
Розроблена і вперше опублікована '''Джуліаном Сьюардом''' (англ. Julian Seward) в липні 1996 (версія 0.15). Стабільність і популярність компресора росли протягом кількох років, і версія 1.0 була опублікована в кінці 2000 року.
+
    bzip2 [КЛЮЧ] ... [ФАЙЛ] ...
  
  
'''Ефективність'''
+
'''Опис'''
  
Відповідно до традицій UNIX-програмування, bzip2 виконує тільки одну функцію: стиснення і розпаковування одного файлу. При цьому до назви файлу за умовчанням додається розширення .bz2. Для упаковки декількох файлів їх зазвичай спершу архівують в один файл утилітою tar, і потім вже стискають за допомогою bzip2. Такі архіви зазвичай мають розширення .tar.bz2.
 
  
'''bzip2''' стискає більшість файлів ефективніше, але повільніше, ніж більш традиційні gzip або zip. В цьому відношенні він схожий на інші сучасні алгоритми стиснення.
+
Команда''' bzip2''' стискає і розпаковує файли. Працює bzip2 приблизно так само, як команда GZIP,тобто  заміщає кожен файл, ім'я якого задано в командному рядку, стислою версією, додаючи до імені файлу суфікс. bz2.
  
В деяких випадках bzip2 програє архіваторам 7-Zip (LZMA) і RAR в абсолютній ефективності стиснення. Згідно з автором, bzip2 програє від 10 до 15 відсотків найкращому класу алгоритмів стиснення даних, відомих в цей час (PPM), але при цьому в два рази швидший при стисненні і в 6 разів швидший при розпаковуванні.
+
У командному рядку можна вказати відразу декілька імен файлів або шаблон імені файлу. Але в цьому випадку кожен із зазначених файлів буде заархівований окремо (загальний архів не створюється).
 +
Вихідні файли після стискання видаляються, залишається тільки архівний файл (файли переміщуються в архів), а при розархівації віддаляється архів. Оскільки bzip2 не вміє зберігати в одному архіві кілька файлів, то зазвичай її застосовують для стиснення архівів, створених програмою tar.Тільки майте на увазі, що в цьому випадку суфікс .bz2 не додається до імені автоматично створюваного архіву, тому краще відразу поставити ім'я архіву з зазначенням обох суфіксів: ''імя''.tar.bz2.
 +
Стиснений  файл має той же самий час модифікації, права доступу та, по можливості, того ж власника, що й вихідний файл, що дає можливість відновити ці атрибути при вилученні файлів з архіву. В деяких випадках стиснений файл може виявитися навіть більше за розміром, ніж вихідний. Це відбувається, наприклад, для файлів довжиною менше 100 байт, тому що механізм стиснення використовує заголовок довжиною близько 50 байт. Для файлів, що являють  собою випадкову послідовність символів (у тому числі для вихідних файлів більшості файлових архіваторів) довжина файлу збільшується приблизно на 0,5%.
 +
 
 +
Команда ''bunzip2'' (або bzip2-г) розархівує зазначені в командному рядку файли. Якщо ці файли не були створені програмою bzip2, вони не будуть розархівувати, буде видано відповідне попередження. При розархівації bzip2 намагається вгадати ім'я разархівованого файлу за такими '''''правилами:'''''
 +
 
 +
  * Filename.bz2 замінюється на ім'я файлу;
 +
  * Filename.bz замінюється на ім'я файлу;
 +
  * Filename.tbz2 замінюється на filename.tar;
 +
  * Filename.tbz замінюється на filename.tar;
 +
  * Будь-яке інше "ім'я" замінюється на "імя.out".
 +
 
 +
Опції командного рядка для bzip2 дуже нагадують опції команди GZIP, але все ж вони не ідентичні.
 +
 
 +
'''Опції'''
 +
 
 +
  -h, --help виклик короткої допомоги при використанні програми;
 +
 
 +
  -d, --decompress примусова розархівація;
 +
 
 +
  -z, --compress примусова архівація;
 +
 
 +
  -t, --test перевірка цілісності вказаного файла(файлів) без розархівації;
 +
 
 +
  -f, --force перезапис існуючого файлу;
 +
 
 +
  -k, --keep збарігати(не видаляти) вихідні файли при архівації і розархівації.
  
bzip2 використовує перетворення Барроуза-Вілера (англ. Burrows-Wheeler transform, сортування блоків) для перетворення послідовностей символів, що багато разів чергуються, на рядки однакових символів, потім застосовує перетворення MTF (англ. move-to-front), і в кінці кодування Хаффмана. Блоки в bzip2 мають однаковий розмір в нестиненому потоці. Розмір блоку можна вибрати за допомогою аргументу командного рядка, і він позначається в стислому тексті довільно вибраною послідовністю бітів представлення числа Пі.
 
  
 
'''Використання'''
 
'''Використання'''
 +
bzip2 можна використовувати як в комбінації з tar, так і окремо: bzip2 file для стиснення і bzip2 -d file.bz2 для розпакування (замість bzip2 -d можнавикористовувати альтернативну назву bunzip2).
 +
 +
Аргументи командної строки  bzip2 в основном такі ж, як і у gzip.
 +
 +
Так, для розпакування tar,стиснутого bzip2:
 +
 +
          bzip2 -cd ім"я архіву.tar.bz2 | tar -xvf -
 +
 +
Для створення стиснутого  bzip2 архіву tar:
 +
 +
          tar -cvf - файлы | bzip2 -9 > имяархива.tar.bz2
 +
 +
Версія GNU tar підтримує  флаг -j, яий дозволяє створювати і розпаковувати tar.bz2 файли без використання перенаправлень вводу-виводу(англ. pipeline):
 +
 +
          tar -cvjf ім" архіву .tar.bz2 список файлів
  
bzip2 можна використовувати як в комбінації з tar, так і окремо: bzip2 file для стиснення і bzip2 -d file.bz2 для розпаковування (замість bzip2 -d можна використовувати альтернативну назву bunzip2).
+
Розпакування  tar-архива, стисненого bzip2 з допомогою GNU tar:
  
Аргументи командного рядка bzip2 в основному такі ж, як і у gzip. Так, для розпаковування архіву tar, стисненого bzip2:
+
          tar -xvjf имяархива.tar.bz2
bzip2 -cd назваархіва.tar.bz2 | tar -xvf -
+
  
Для створення стисненого bzip2 архіву tar:
+
Сучасні версії  GNU tar мають функції  автоматичного розпізнавання типу архіву, і тому можна написати:
tar -cvf - файли | bzip2 -9 > назваархіва.tar.bz2
+
  
Версія GNU tar підтримує опцію -j, яка дозволяє створювати і розпаковувати tar.bz2 файли без використання перенаправлень вводу-виводу (англ. pipeline):
+
          tar -xvf имяархива.tar.bz2
tar -cvjf назваархіва.tar.bz2 перелікфайлів
+
  
Розпаковування tar-рахіва, стисненого bzip2 за допомогою GNU tar:
+
Крім того існує набір утиліт для виконання пошуку, виводу, відновлення і порівняння даних в форматі  bzip2: bzcat, bzdiff, bzfgrep, bzless, bzcmp, bzegrep, bzgrep, bzip2recover, bzmore.
tar -xvjf назваархіва.tar.bz2
+

Поточна версія на 11:50, 19 квітня 2012

                                          bzip2
стиснення і розпакування файлів

Синтаксис

   bzip2 [КЛЮЧ] ... [ФАЙЛ] ...


Опис


Команда bzip2 стискає і розпаковує файли. Працює bzip2 приблизно так само, як команда GZIP,тобто заміщає кожен файл, ім'я якого задано в командному рядку, стислою версією, додаючи до імені файлу суфікс. bz2.

У командному рядку можна вказати відразу декілька імен файлів або шаблон імені файлу. Але в цьому випадку кожен із зазначених файлів буде заархівований окремо (загальний архів не створюється). Вихідні файли після стискання видаляються, залишається тільки архівний файл (файли переміщуються в архів), а при розархівації віддаляється архів. Оскільки bzip2 не вміє зберігати в одному архіві кілька файлів, то зазвичай її застосовують для стиснення архівів, створених програмою tar.Тільки майте на увазі, що в цьому випадку суфікс .bz2 не додається до імені автоматично створюваного архіву, тому краще відразу поставити ім'я архіву з зазначенням обох суфіксів: імя.tar.bz2. Стиснений файл має той же самий час модифікації, права доступу та, по можливості, того ж власника, що й вихідний файл, що дає можливість відновити ці атрибути при вилученні файлів з архіву. В деяких випадках стиснений файл може виявитися навіть більше за розміром, ніж вихідний. Це відбувається, наприклад, для файлів довжиною менше 100 байт, тому що механізм стиснення використовує заголовок довжиною близько 50 байт. Для файлів, що являють собою випадкову послідовність символів (у тому числі для вихідних файлів більшості файлових архіваторів) довжина файлу збільшується приблизно на 0,5%.

Команда bunzip2 (або bzip2-г) розархівує зазначені в командному рядку файли. Якщо ці файли не були створені програмою bzip2, вони не будуть розархівувати, буде видано відповідне попередження. При розархівації bzip2 намагається вгадати ім'я разархівованого файлу за такими правилами:

  * Filename.bz2 замінюється на ім'я файлу;
  * Filename.bz замінюється на ім'я файлу;
  * Filename.tbz2 замінюється на filename.tar;
  * Filename.tbz замінюється на filename.tar;
  * Будь-яке інше "ім'я" замінюється на "імя.out".

Опції командного рядка для bzip2 дуже нагадують опції команди GZIP, але все ж вони не ідентичні.

Опції

 -h, --help		виклик короткої допомоги при використанні програми;
 -d, --decompress	примусова розархівація;
 -z, --compress		примусова архівація;
 -t, --test		перевірка цілісності вказаного файла(файлів) без розархівації;
 -f, --force		перезапис існуючого файлу;
 -k, --keep		збарігати(не видаляти) вихідні файли при архівації і розархівації.


Використання bzip2 можна використовувати як в комбінації з tar, так і окремо: bzip2 file для стиснення і bzip2 -d file.bz2 для розпакування (замість bzip2 -d можнавикористовувати альтернативну назву bunzip2).

Аргументи командної строки bzip2 в основном такі ж, як і у gzip.

Так, для розпакування tar,стиснутого bzip2:

         bzip2 -cd ім"я архіву.tar.bz2 | tar -xvf -

Для створення стиснутого bzip2 архіву tar:

         tar -cvf - файлы | bzip2 -9 > имяархива.tar.bz2

Версія GNU tar підтримує флаг -j, яий дозволяє створювати і розпаковувати tar.bz2 файли без використання перенаправлень вводу-виводу(англ. pipeline):

         tar -cvjf ім" архіву .tar.bz2 список файлів

Розпакування tar-архива, стисненого bzip2 з допомогою GNU tar:

         tar -xvjf имяархива.tar.bz2

Сучасні версії GNU tar мають функції автоматичного розпізнавання типу архіву, і тому можна написати:

         tar -xvf имяархива.tar.bz2

Крім того існує набір утиліт для виконання пошуку, виводу, відновлення і порівняння даних в форматі bzip2: bzcat, bzdiff, bzfgrep, bzless, bzcmp, bzegrep, bzgrep, bzip2recover, bzmore.