it-swarm.com.ru

Любая команда Linux для выполнения параллельной распаковки файла tar.bz2?

У меня довольно большой файл (~ 50 ГБ), и для его запуска требуется некоторое время

tar xvf file.tar.bz2

в теме. Я знаю о программах, которые могут выполнять параллельное сжатие для файлов bzip2, но не знаю программ, которые могут выполнять параллельную распаковку для файлов bzip2.

Есть ли программы, которые могут достичь этого? Какой точный синтаксис команды использовать для извлечения из файла?

Я использую Ubuntu 12.04

17
user784637

lbzip2 и pbzip2 - это инструменты, которые вы можете использовать для параллельного сжатия и распаковки.

Использование:

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

Параметр -d используется для распаковки.

Чтобы установить эти пакеты:

lbzip2Install lbzip2 Тип:

Sudo apt-get install lbzip2

pbzip2Install pbzip2 Тип:

Sudo apt-get install pbzip2
20
devav2

Вы можете распаковать ваш архив с помощью одиночная команда, используя опцию tar -I. Это дает вам возможность использовать любую утилиту сжатия, которая поддерживает параметр -d.

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

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

Конечно, это работает и при сжатии:

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

Проверьте tar --help для дополнительных параметров.

10
Ludovic Ronsin

вы можете использовать pbzip2 с флагом -d для "распаковки",

с man-страницы:

  pbzip2 -d myfile.tar.bz2

В этом примере будет распакован файл "myfile.tar.bz2" в распакованный файл "myfile.tar". Он будет использовать автоматически определенное количество процессоров (или 2 процессора, если автоматическое определение не поддерживается).

После распаковки вам нужно распаковать файл

 tar xf myfile.tar

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

5
Sam

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

2
Stefan Reich