Existuje několik způsobů, jak komprimovat a dekomprimovat soubory v Linuxu. I když jsme o některých již diskutovali (zde a zde), existuje spousta věcí, které ještě ne. Takže zde, v tomto tutoriálu, probereme další takový nástroj příkazového řádku.
Jmenuje se xz . Probereme základy tohoto nástroje příkazového řádku. Ale než do toho skočíme, stojí za zmínku, že všechny příklady zde byly testovány na počítači Ubuntu 18.04 LTS.
Příkaz Linux xz
Jak již bylo zmíněno na začátku, příkaz xz v Linuxu umožňuje komprimovat a dekomprimovat soubory. Následuje jeho syntaxe:
xz [option...] [file...]
A zde je to, co o tom říká manuálová stránka:
xz is a general-purpose data compression tool with command line syntax similar to gzip(1)
and bzip2(1). The native file format is the .xz format, but the legacy .lzma format used
by LZMA Utils and raw compressed streams with no container format headers are also supported.
xz compresses or decompresses each file according to the selected operation mode. If no files
are given or file is -, xz reads from standard input and writes the processed data to
standard output. xz will refuse (display an error and skip the file) to write compressed data
to standard output if it is a terminal. Similarly, xz will refuse to read compressed data
from standard input if it is a terminal.
Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout lepší představu o tom, jak xz funguje.
O1. Jak používat příkaz xz?
Základní použití je poměrně jednoduché. Stačí předat název souboru (který se má zkomprimovat) jako vstupní argument do xz. Zde je příklad:
xz file.txt
V mém systému vytvořil výše uvedený příkaz jako výstup následující soubor.
file.txt.xz
Takže můžete vidět příkaz xz komprimovaný soubor.txt. Za zmínku stojí, že operace nahradí původní soubor (v tomto případě soubor.txt) komprimovanou verzí.
O2. Jak zajistit, aby xz zachoval i původní soubor?
Jak jsem zmínil v předchozí části, příkaz xz nahradí původní soubor jeho komprimovanou verzí. Pokud však chcete, můžete donutit xz, aby zachoval i původní soubor. To lze provést pomocí volby příkazového řádku -k.
Například:
xz -k file.txt
Tentokrát tedy v aktuálním pracovním adresáři najdete soubor.txt i soubor.txt.xz.
Q3. Jak komprimovat více souborů?
To je velmi jednoduché. Stačí předat názvy jako vstupní argumenty do xz.
Například:
xz file1.txt file2.txt
Tento příkaz zkomprimuje oba tyto soubory najednou.
4. Jak dekomprimovat soubory .xz?
Chcete-li dekomprimovat soubory .xz, použijte volbu -d příkazového řádku. Například:
xz -d file.txt.xz
Tento příkaz vytvoří soubor.txt v aktuálním pracovním adresáři.
O5. Jak přimět xz tisknout informace o komprimovaných souborech?
To lze provést pomocí volby příkazového řádku -l. Například:
xz -l file.txt.xz
Tento příkaz v mém případě vytvořil následující informace:
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 96 B 37 B 2.595 CRC64 file.txt.xz
O6. Jak určit jiný formát komprese/dekomprese?
To lze provést pomocí volby příkazového řádku -F. Chcete-li však tuto možnost použít, musíte pochopit následující:
-F format, --format=format
Specify the file format to compress or decompress:
auto This is the default. When compressing, auto is equivalent to xz. When decompressing, the format of the input file
is automatically detected. Note that raw streams (created with --format=raw) cannot be auto-detected.
xz Compress to the .xz file format, or accept only .xz files when decompressing.
lzma, alone
Compress to the legacy .lzma file format, or accept only .lzma files when decompressing. The alternative name alone
is provided for backwards compatibility with LZMA Utils.
raw Compress or uncompress a raw stream (no headers). This is meant for advanced users only. To decode raw streams, you
need use --format=raw and explicitly specify the filter chain, which normally would have been stored in the container
headers.
Jak vidíte, můžete použít kterýkoli z následujících formátů:'auto', 'xz', 'lzma' a 'raw'.
O7. Jak nastavit, aby xz zobrazoval indikátor průběhu?
To lze provést pomocí volby -v příkazového řádku. Zde je příklad:
Závěr
I když jsme v tomto tutoriálu probrali několik možností příkazového řádku xz, existuje mnoho dalších. Jakmile je pochopíte a procvičíte, přejděte na manuálovou stránku nástroje, kde se o něm dozvíte více.