Как прочитать 1TB заархивированный файл за минимальное время

Я пытаюсь прочитать заархивированный файл. Я делаю это с помощью команды tar tf abc.tar.xz, Поскольку размер файла составляет 1 ТБ, это занимает много времени. Я не очень знаком с сценарием Bash. У меня есть и другие команды, такие как zcat 3532642.tar.gz | more а также tar tf 3532642.tar.xz |grep --regex="folder1/folder2/folder3/folder4/" а также

tar tvf 3532642.tar.xz --to-command \
'grep --label="$TAR_FILENAME" -H folder1/folder2/folder3/folder4/ ; true'

Но я не вижу большой разницы между ними с точки зрения времени, которое они затрачивают на выполнение файла, чтобы прочитать его содержимое.

Кто-нибудь знает, как я могу сделать это за минимальное время, чтобы обработать такой огромный объем данных для ZIP-файла. Любая помощь будет оценена!!!

1 ответ

Решение

Как rrauenza упоминает, так как pigz может не работать на xz формат, есть аналогичный инструмент pixz для параллельного, индексированного xz сжатия / распаковки.

от man страницы видно, что Pigz сжимает / распаковывает, используя потоки, чтобы использовать несколько процессоров и ядер.

Похожий на pigz эта команда также предоставляет возможность указать количество потоков, которые могут быть вызваны параллельно в нескольких ядрах для достижения максимальной производительности.

-p --processes n
Allow up to n processes (default is the number of online processors)

Или вы можете вручную получить количество ядер из команды bash getconf _NPROCESSORS_ONLN и установите значение в -p,

Более подробная информация из GitHub страница из pixz также с подробной информацией о том, как загрузить и установить

(или же)

Идя с tar Единственное решение, это может быть сделано, только если имя файла известно в предыдущем

tar -zxOf <file-name_inside-tar> <file-containing-tar>

со следующими параметрами:-

   -f, --file=ARCHIVE
          use archive file or device ARCHIV

   -z, --gzip
          filter the archive through gzip

   -x, --extract, --get
          extract files from an archive

   -O, --to-stdout
          extract files to standard output

Может быть не так эффективно, как pigz, но тем не менее делает работу.

Другие вопросы по тегам