У меня довольно большой файл (~ 50 ГБ), и для его запуска требуется некоторое время
tar xvf file.tar.bz2
в теме. Я знаю о программах, которые могут выполнять параллельное сжатие для файлов bzip2, но не знаю программ, которые могут выполнять параллельную распаковку для файлов bzip2.
Есть ли программы, которые могут достичь этого? Какой точный синтаксис команды использовать для извлечения из файла?
Я использую Ubuntu 12.04
tar
compression
gzip
bzip2
user784637
источник
источник
tar xvf
?lbzip2 -d -n 2 file.tar.bz2
это даст файл tar. Который должен быть в целости и сохранности.lbzip2
"Сжать или распаковать операнды FILE или стандартный ввод в обычные файлы или стандартный вывод, вызвав libbz2 Джулиана Сьюарда из нескольких потоков. Утилита lbzip2 использует несколько потоков и разделитель, связанный с вводом, даже при распаковке файлов .bz2 создан стандартным bzip2 (но см. ошибки ниже). "Вы можете распаковать ваш архив одной командой, используя
-I
опцию tar . Это дает вам возможность использовать любую утилиту сжатия, которая поддерживает эту-d
опцию.Это очень полезно при работе с большим архивом, поскольку вам не нужно иметь вдвое больше несжатого размера, доступного в целевой файловой системе (временный файл tar и выходной файл). Это также быстрее, так как вам требуется гораздо меньше дискового ввода-вывода.
Конечно, это работает и при сжатии:
Проверьте
tar --help
больше вариантов.источник
lbzip2 -dc file.tar.bz2 | tar xvf -
Вы можете использовать pbzip2 с
-d
флагом, чтобы "распаковать",с man-страницы:
В этом примере будет распакован файл «myfile.tar.bz2» в распакованный файл «myfile.tar». Он будет использовать автоматически определенное количество процессоров (или 2 процессора, если автоматическое определение не поддерживается).
После распаковки вам нужно распаковать файл
Файл tar - это просто контейнер, к которому вы можете применить несколько алгоритмов сжатия, например, у вас может быть ".tar.gz" или ".tar.bz2", к которым оба применяются разные алгоритмы сжатия. Таким образом, pbzip2 будет только распаковывать архив, но не будет извлекать файлы, используйте их
tar
для распаковки. Tar не должен занимать много времени, так как архив уже распакован, и он просто извлечет файлы. (обратите внимание, что мы не используем флаг 'z' или флаг 'j' в команде tar, что означает, что мы также хотим распаковать файл)источник
В вашем случае lbzip2 выглядит намного лучше, чем pbzip2, поскольку он способен ускорить распаковку стандартных файлов .bz2, тогда как pbzip2 этого не делает. (Только что проверил - 17 секунд для lbzip2 против 56 секунд для pbzip2 на частично загруженном четырехъядерном процессоре).
источник