Ortak bir yaklaşım
tar
Program için bir seçenek var :
-I, --use-compress-program PROG
filter through PROG (must accept -d)
Archiver veya kompresör yardımcı programının çok iş parçacıklı sürümünü kullanabilirsiniz.
En popüler çok iş parçacıklı arşivler pigz (gzip yerine) ve pbzip2'dir (bzip2 yerine). Örneğin:
$ tar -I pbzip2 -cf OUTPUT_FILE.tar.bz2 paths_to_archive
$ tar --use-compress-program=pigz -cf OUTPUT_FILE.tar.gz paths_to_archive
Arşivleyici -d'yi kabul etmelidir. Değişim yardımcı programınızda bu parametre yoksa ve / veya ek parametreler belirtmeniz gerekiyorsa, borular kullanın (gerekirse parametreleri ekleyin):
$ tar cf - paths_to_archive | pbzip2 > OUTPUT_FILE.tar.gz
$ tar cf - paths_to_archive | pigz > OUTPUT_FILE.tar.gz
Tekli ve çok parçalı giriş ve çıkışlar uyumludur. Çok parçalı sürümü kullanarak sıkıştırabilir ve tekli sürümü kullanarak sıkıştırmayı açabilirsiniz veya tam tersini yapabilirsiniz.
p7zip
Sıkıştırma için p7zip için aşağıdaki gibi küçük bir kabuk betiğine ihtiyacınız vardır:
#!/bin/sh
case $1 in
-d) 7za -txz -si -so e;;
*) 7za -txz -si -so a .;;
esac 2>/dev/null
7zhelper.sh kaydedin. İşte kullanım örneği:
$ tar -I 7zhelper.sh -cf OUTPUT_FILE.tar.7z paths_to_archive
$ tar -I 7zhelper.sh -xf OUTPUT_FILE.tar.7z
xz
Çok iş parçacıklı XZ desteği ile ilgili. XZ Utils'ın 5.2.0 veya daha üst bir sürümünü çalıştırıyorsanız, XZ_DEFAULTS (örn. ) Çevresel değişkeni aracılığıyla uygun bir değere ayarlayarak -T
veya --threads
uygun bir değere sıkıştırma için birden fazla çekirdek kullanabilirsiniz XZ_DEFAULTS="-T 0"
.
Bu 5.1.0 alfa versiyonu için bir insan parçası:
Çok iş parçacıklı sıkıştırma ve açma işlemi henüz uygulanmadığından, bu seçeneğin şimdilik bir etkisi yoktur.
Ancak bu, iş parçacığı etkinleştirilmişken de sıkıştırılmamış dosyaların sıkıştırılması için çalışmaz. 5.2.2 sürümü için insandan:
Dişli dekompresyon henüz uygulanmadı. Yalnızca blok başlıklarında boyut bilgisi olan birden fazla blok içeren dosyalarda çalışır. Çok iş parçacıklı modda sıkıştırılmış tüm dosyalar bu koşulu karşılar, ancak tek iş parçacıklı modda sıkıştırılmış dosyalar --block-size = size kullanılsa bile çalışmaz.
Değiştirme ile yeniden derleme
Kaynaklardan tar oluşturursanız, parametrelerle yeniden derleyebilirsiniz
--with-gzip=pigz
--with-bzip2=lbzip2
--with-lzip=plzip
Katranı bu seçeneklerle yeniden derledikten sonra katran yardımının çıktısını kontrol edebilirsiniz:
$ tar --help | grep "lbzip2\|plzip\|pigz"
-j, --bzip2 filter the archive through lbzip2
--lzip filter the archive through plzip
-z, --gzip, --gunzip, --ungzip filter the archive through pigz