Нет никакого различия.
Несколько наклонных черт проигнорированы (без эффекта), например:
ls -al //usr///////bin/sed
Я думаю, что Вы ищете pbzip2:
PBZIP2 является параллельной реализацией bzip2 компрессора файла блочной сортировки, который использует pthreads и достигает почти линейного ускорения на машинах SMP.
Взгляните на домашнюю страницу проекта или проверьте свое любимое хранилище пакетов.
7zip может работать на нескольких потоках при предоставлении -mmt
флаг, но только при сжатии в 7z-архивы, которые предлагают большое сжатие, но обычно медленнее, чем zip для создания архивов. Сделайте что-то вроде этого:
7z a -mmt foo.7z /opt/myhugefile.dat
pigz является параллельной реализацией gzip, но может только действительно использовать несколько процессоров для сжатия, не распаковки.
pigz
на самом деле, кажется, может использовать несколько потоков также при распаковке. Попытайтесь сравнить вывод time tar xf dir.tar.gz
и time pigz -cd dir.tar.gz | tar xf -
(на моем 4 ядрах процессора это берет немного меньше чем половину времени).
– gerlos
29.10.2015, 21:21
time
на конвейере будет только время первая команда. От pigz
документация: "Распаковка не может быть параллелизирована, по крайней мере, не без специально подготовленного выкачивают потоки с этой целью. В результате pigz использует единственный поток (основной поток) для распаковки, но создаст три других потока для чтения, записи, и проверит вычисление, которое может ускорить распаковку при некоторых обстоятельствах".
– augurar
31.08.2016, 21:59
tar
просто формат архива, который очень хорош в точном дублировании файлов и сохранении дерева каталогов и исходных атрибутов файла. TAR очень хорош для того, чтобы сделать резервные копии, потому что все сохраняется. Я использую pbzip2
сжимать tar архивирует, я использую для системных резервных копий с очень хорошими результатами.
эта команда должна добиться цели.
tar -cpS "infile" | pbzip2 > "outfile"
pbzip2
может быть заменен другой утилитой сжатия, но предупрежден, сжатие LZMA (как pxz) использует ТОННУ RAM при сжатии/распаковке больших файлов (я пытался выполнить 8 потоков с 8 ГБ RAM, и pxz начал подкачивать к диску).
Интерпретация &
интерпретируется оболочкой, в которой вы должны использовать кавычки ('
) вокруг URL:
curl --data-binary @/opt/somefile.xml 'http://1.2.3.4/gateway/submit?source=FOO&conversationid=1234567'
ОП спрашивает о параллельном архивировании, а не о параллельном сжатии.
Если исходный материал поступает из файловой системы, в которой разные каталоги / файлы могут находиться на разных дисках, или даже на одном быстром диске, который превышает скорость ввода инструмента (ов) сжатия, тогда действительно может быть полезно иметь несколько потоки ввода, идущие в слои сжатия.
Возникает важный вопрос: как выглядит вывод из параллельного архива? Это уже не просто дескриптор файла / stdout
, а дескриптор файла для каждого потока.
Примером этого до сих пор является режим параллельного дампа Postgresql pg_dump
, в котором он производит дамп в каталог, с потоками, работающими над набором таблиц для резервного копирования (рабочая очередь с несколькими потоками, потребляющими очередь).
Я не уверен ни в каких реальных параллельных архиваторах, которые широко распространены. Для использования в ZFS Solaris Tar был предложен хак: http://www.maier-komor.de/mtwrite.html
Есть несколько специальных инструментов резервного копирования, которые успешно запускают несколько потоков, но гораздо больше, чем просто разделите рабочую нагрузку по каталогам на высоком уровне.
Что касается сжатия, то xz
примерно с версии 5.2 поддерживает параллельное сжатие с помощью опции -T
.
pigz
иpxz
для параллельных реализацийgzip
иxz
. Можно сжать использование команды какtar c dir | pigz -c > dir.tar.gz
и использование распаковкиpigz -cd dir.tar.gz | tar xf -
. – gerlos 29.10.2015, 21:31tar -cf dir.tar.gz -I pigz dir
иtar -xf dir.tar.gz -I pigz
. Такжеxz
является поточным: использоватьXZ_OPT=-T0 tar -cJf dir.tar.gz dir
иXZ_OPT=-T0 tar -xJf dir.tar.gz
. – Rich 25.08.2017, 19:53