GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavíte velikost bloku bzip2 při použití tar?

Řešení 1:

export BZIP=--fast
tar cjf foo.tar.bz2 foo

Nebo výstup tar pomocí kanálu do bzip2 .

I když byste si měli povšimnout z manuálové stránky bzip2:

    -1 (or --fast) to -9 (or --best)
              Set  the  block size to 100 k, 200 k ..  900 k when compressing.
              Has no effect when decompressing.  See MEMORY MANAGEMENT  below.
              The --fast and --best aliases are primarily for GNU gzip compat-
              ibility.  In particular, --fast  doesn't  make  things  signifi-
              cantly faster.  And --best merely selects the default behaviour.

Řešení 2:

tar -cjf dir.tar.bz2 --options bzip2:compression-level=9 path/to/dir/

Řešení 3:

bzip2 velikosti bloků

bzip2 má nějaké možnosti velikosti bloku. Z manuálové stránky bzip2(1) :

-1 (or --fast) to -9 (or --best)
       Set the block size to 100 k, 200 k ..  900 k when compressing.
       Has no effect when decompressing. See MEMORY MANAGEMENT below.
       The --fast and --best aliases are primarily for GNU gzip
       compatibility. In particular, --fast doesn't make things
       significantly faster. And --best merely selects the default
       behaviour.

Protože chcete rychlejší kompresi bez ohledu na kompresní poměr, použijte bzip2 , zdá se, že chcete -1 (nebo --fast ).

Nastavení bzip2 velikost bloku při použití tar

Můžete nastavit bzip2 velikost bloku při použití tar několika způsoby.

Způsob UNlX

Můj oblíbený způsob, způsob UNlX, je způsob, kdy používáte každý nástroj nezávisle a kombinujete je pomocí potrubí.

$ tar --create [FILE...] | bzip2 -1 > [ARCHIVE].tar.bz2

Můžete si to přečíst jako „vytvořit .tar pomocí tar -> bzipujte jej pomocí bzip2 -> napište to na [ARCHIVE].tar.bz2 ".

."

Proměnná prostředí

Je také možné nastavit bzip2 možnosti prostřednictvím proměnné prostředí BZIP2 . Z manuálové stránky bzip2(1) :

bzip2 will read arguments from the environment variables BZIP2 and BZIP,
in that order, and will process them before any arguments read from the
command line. This gives a convenient way to supply default arguments.

Chcete-li to použít s tar , můžete například udělat:

$ BZIP2=-1 tar --create --bzip2 --file [ARCHIVE].tar.bz2 [FILE...]

Rychlejší alternativy

bzip2 používá pomalý kompresní algoritmus. Pokud máte obavy z rychlosti, můžete prozkoumat alternativní algoritmy, jako jsou ty, které používá gzip nebo lzop . Zde je pěkný článek o porovnání kompresních nástrojů:https://aliver.wordpress.com/2010/06/22/huge-unix-file-compresser-shootout-with-tons-of-datagraphs/


Linux
  1. Jak nastavit parametry, když Pipe Bash Script to Bash?

  2. Jak získat velikost tar.gz v (MB) souboru v pythonu

  3. Jak nastavit limit délky čáry při použití grep (Filtrovat výsledek podle délky čáry)?

  1. Kolik ti bylo let, když jsi poprvé začal používat Linux?

  2. Jak mohu rekurzivně stáhnout adresář pomocí smbclient?

  3. Jak můžete určit libovolnou úvodní cestu při přidávání souborů do taru?

  1. [Linux] :Jak vyloučit adresář při použití příkazu shellu „tar“.

  2. Jak zjistit, který Shell používáte v Linuxu

  3. Jak nastavit limit velikosti nahrávání souborů v Apache?