Как прочитать 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
, но тем не менее делает работу.