Будь-яка команда Linux для виконання паралельної декомпресії файлу tar.bz2?


17

У мене досить великий файл (~ 50 Гб), і це потребує певного часу

tar xvf file.tar.bz2

на цьому. Мені відомо про програми, які можуть робити паралельну компресію для файлів bzip2, але не знаю про програми, які можуть робити паралельну декомпресію для файлів bzip2.

Чи є програми, які можуть цього досягти? Який точний синтаксис команди використовувати для вилучення з файлу?

Я використовую ubuntu 12.04

Відповіді:


22

lbzip2і pbzip2є інструментами, які можна використовувати для паралельного стиснення та декомпресії.

Використання:

lbzip2 -d <file.tar.bz2> 
pbzip2 -d <file.tar.bz2> 

-d варіант використовується для декомпресії.

Щоб встановити ці пакети:

Встановіть lbzip2Тип lbzip2 :

sudo apt-get install lbzip2

Встановіть pbzip2тип pbzip2 :

sudo apt-get install pbzip2

Тож якщо я правильно розумію, мені потрібно декомпресувати і потім зняти знімок? Як 2 команди на відміну від tar xvf?
користувач784637

1
Так, коли ви запустите, lbzip2 -d -n 2 file.tar.bz2це дасть файл tar. Яке потрібно нецілувати.
devav2

1
Зі man сторінки сторінки pbzip2 (lbzip2 розповідає аналогічну історію): "Файли, стиснуті за допомогою pbzip2, також отримають значне прискорення при декомпресії за допомогою pbzip2. Файли, які були стиснуті за допомогою bzip2, не побачать прискорення, оскільки bzip2 пакує дані в єдиний фрагмент. які не можна розділити між процесорами. "
Тапіо

1
@Tapio Ось Опис для lbzip2"Стиснення або розпакування операндів FILE або стандартного вводу до звичайних файлів або стандартного виводу, за допомогою виклику lilianbz2 Джуліана Сьюарда з декількох потоків. Утиліта lbzip2 використовує кілька потоків і розділений з введенням роздільник навіть при декомпресії файлів .bz2. створений стандартним bzip2 (але див. BUGS нижче). "
devav2

1
З однієї відповіді я зрозумів би, що обидві програми потрібно якось використовувати разом - але насправді вони здаються альтернативними? (У ньому написано, що "lbzip2 та pbzip2 - це інструменти ...", "Використання: lbzip2 ... pbzip2 ...", "встановити ці ...")
Volker Siegel

11

Ви можете розпакувати свій архів за допомогою однієї команди, використовуючи -Iопцію tar . Це дає можливість використовувати будь-яку утиліту стиснення, яка підтримує цю -dопцію.

tar -I lbzip2 -xvf <file.tar.bz2>

Це дуже корисно при наборі даних з великим архівом, оскільки вам не потрібно мати подвійний розмір нестисненого розміру в цільовій файловій системі (файл з тимчасовою стрічкою та вихідний файл) Це також швидше, оскільки вам потрібно набагато менше дискового вводу-виводу.

Звичайно, це працює і при стисненні:

tar -I lbzip2 -cvpf <file.tar.bz2> <file>

Перевірте tar --helpінші варіанти.


1
Інший варіант (наприклад, якщо ваша версія "смола" не розуміє варіант -I)lbzip2 -dc file.tar.bz2 | tar xvf -
Wodin

5

ви можете використовувати pbzip2 з -dпрапором для "декомпресії",

з сторінки сторінки:

  pbzip2 -d myfile.tar.bz2

Цей приклад розпакує файл "myfile.tar.bz2" у декомпресований файл "myfile.tar". Він буде використовувати автоматично виявлений # процесорів (або 2 процесора, якщо автоматичне виявлення не підтримується).

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

 tar xf myfile.tar

Файл tar - це лише контейнер, до якого ви можете застосувати кілька алгоритмів стиснення, наприклад, у вас може бути ".tar.gz" або ".tar.bz2", в яких обоє застосовані різні алгоритми стиснення. Таким чином, pbzip2 розпакує архів лише, але він не буде витягувати файли, використовуючи tarдля вилучення файлів. Тар не повинен зайняти багато часу, оскільки архів уже нестиснений, і він просто витягне файли. (зауважте, що ми не використовуємо прапор 'z' або 'j' в команді tar, який вказує на те, що ми також хочемо розпакувати файл)


1
на сторінці керівництва є кілька корисних прикладів: manpages.ubuntu.com/pbzip2
Савас Радевич

@Sam Дякую за відповідь - чи зможете ви відповісти на коментар, який я залишив на іншій відповіді
user784637

2

lbzip2 здається набагато кращим, ніж pbzip2 у вашому випадку, оскільки він здатний прискорити декомпресію стандартних файлів .bz2, тоді як pbzip2 цього не робить. (Щойно перевірено - 17 секунд для lbzip2 проти 56 секунд для pbzip2 на частково завантаженому чотирьохядерному ядрі).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.