【gzip,gunzip,bzip2,bunzip2,xz,unxz】Linuxコマンド_ファイル圧縮・解凍

LinuxOSでは、ネットワーク上でファイル転送をしたり、古いファイルを保存する場合に圧縮のコマンドを実施します。
ファイル圧縮をすることでファイルサイズを小さくし、空き容量を増やしたり、作業効率を向上することができます。

以下ではLinuxで標準的に使用される圧縮系コマンドは以下となります。

  • gzip形式(.gz)
  • bzip2形式(.bz2)
  • xz形式(.xz)

各圧縮形式の圧縮・解凍をまとめます。

「圧縮・解凍」コマンドの使い方(Linux)

以下ではLinuxOSで使用する各圧縮・解凍コマンドの使い方となります。

「gzip」形式(拡張子”.gz”)の圧縮・解凍コマンド

ファイルをgzip形式(.gz)で圧縮する場合は、「gzip」コマンドを使用します。
以下では「test.txt」を圧縮します。

「gzip」圧縮コマンド

$ ls -l
合計 4
-rw-r--r-- 1 root root 10000000 11月  6 18:42 test.txt
$ gzip test.txt 
$ ls -l
合計 12
-rw-r--r-- 1 root root 9758 11月  6 18:42 test.txt.gz

gzipコマンドでは引数で指定したファイルを圧縮することで、ファイル名が「xxx.gz」というファイルを作成します。

上記では「test.txt」が圧縮されたことにより、「test.txt.gz」というファイルが作成されます。
圧縮できたファイルサイズを見ると、圧縮前の「10MB」から「9.7KB」まで縮小しています。正常に圧縮が成功しているようです。

次にこの圧縮ファイルを解凍します。
解凍コマンドは「gunzip」コマンドを実行します。

「gunzip」解凍コマンド

$ gunzip test.txt.gz 
$ ls -l
合計 9768
-rw-r--r-- 1 root root 10000000 11月  6 18:42 test.txt

gunzipコマンドで、指定したgzip形式の圧縮ファイルが解凍され、ファイルサイズも「10MB」となっています。

「bzip2」形式(拡張子”.bz2″)の圧縮・解凍コマンド

ファイルをbzip2形式(.bz2)で圧縮する場合は、「bzip2」コマンドを使用します。
以下では「test.txt」を圧縮します。

「bzip2」圧縮コマンド

$ ls -l
合計 9768
-rw-r--r-- 1 root root 10000000 11月  6 18:42 test.txt
$ bzip2 test.txt 
$ ls -l
合計 4
-rw-r--r-- 1 root root 72 11月  6 18:42 test.txt.bz2

bzip2コマンドでは引数で指定したファイルを圧縮することで、ファイル名が「xxx.bz2」というファイルを作成します。

上記では「test.txt」が圧縮されたことにより、「test.txt.bz2」というファイルが作成されます。
圧縮できたファイルサイズを見ると、圧縮前の「10MB」から「72B」まで縮小しています。正常に圧縮が成功しているようです。

次にこの圧縮ファイルを解凍します。
解凍コマンドは「bunzip2」コマンドを実行します。

「bunzip2」解凍コマンド

$ bunzip2 test.txt.bz2 
$ ls -l
合計 9768
-rw-r--r-- 1 root root 10000000 11月  6 18:42 test.txt

bunzip2コマンドで、指定したbzip2形式の圧縮ファイルが解凍され、ファイルサイズも「10MB」となっています。

上記の3つの圧縮コマンドは1つのファイルを圧縮するためのコマンドとなります。
ディレクトリや複数のファイルをまとめて圧縮する場合は「tar」コマンドを使用します。

「xz形式(拡張子”.xz”)の圧縮・解凍コマンド

ファイルをxz形式(.xz)で圧縮する場合は、「xz」コマンドを使用します。
以下では「test.txt」を圧縮します。

「xz」圧縮コマンド

$ ls -l
合計 9768
-rw-r--r-- 1 root root 10000000 11月  6 18:42 test.txt
$ xz test.txt 
$ ls -l
合計 4
-rw-r--r-- 1 root root 1592 11月  6 18:42 test.txt.xz

xzコマンドでは引数で指定したファイルを圧縮することで、ファイル名が「xxx.xz」というファイルを作成します。

上記では「test.txt」が圧縮されたことにより、「test.txt.xzというファイルが作成されます。
圧縮できたファイルサイズを見ると、圧縮前の「10MB」から「1.5KB」まで縮小しています。正常に圧縮が成功しているようです。

次にこの圧縮ファイルを解凍します。
解凍コマンドは「unxz」コマンドを実行します。

「unxz」解凍コマンド

$ unxz test.txt.xz 
$ ls -l
合計 16
-rw-r--r-- 1 root root 10000000 11月  6 18:42 test.txt

unxzコマンドで、指定したxz形式の圧縮ファイルが解凍され、ファイルサイズも「10MB」となっています。

圧縮率が高い形式は一般的には「xz」コマンド

一般的に以下の順で圧縮率が高いと言われています。

  1. xz形式
  2. bzip2形式
  3. gzip形式

「xz」が一番圧縮率が高いと言われていますが、今回の圧縮の結果を見ると、「bzip2」が「72KB」の圧縮となっていたので、今回一番圧縮率が高かったのは「bzip2」でした。

上記の3つの圧縮コマンドは1つのファイルを圧縮するためのコマンドとなります。
ディレクトリや複数のファイルをまとめて圧縮する場合は「tar」コマンドを使用します。

「圧縮」コマンドオプション

各圧縮コマンドのオプションは以下の通りとなります。

gzip

$ gzip --help
Usage: gzip [OPTION]... [FILE]...
Compress or uncompress FILEs (by default, compress FILES in-place).

Mandatory arguments to long options are mandatory for short options too.

  -c, --stdout      write on standard output, keep original files unchanged
  -d, --decompress  decompress
  -f, --force       force overwrite of output file and compress links
  -h, --help        give this help
  -k, --keep        keep (don't delete) input files
  -l, --list        list compressed file contents
  -L, --license     display software license
  -n, --no-name     do not save or restore the original name and timestamp
  -N, --name        save or restore the original name and timestamp
  -q, --quiet       suppress all warnings
  -r, --recursive   operate recursively on directories
      --rsyncable   make rsync-friendly archive
  -S, --suffix=SUF  use suffix SUF on compressed files
      --synchronous synchronous output (safer if system crashes, but slower)
  -t, --test        test compressed file integrity
  -v, --verbose     verbose mode
  -V, --version     display version number
  -1, --fast        compress faster
  -9, --best        compress better

With no FILE, or when FILE is -, read standard input.

Report bugs to <bug-gzip@gnu.org>.

bzip2

$ bzip2 --help
bzip2, a block-sorting file compressor.  Version 1.0.6, 6-Sept-2010.

   usage: bzip2 [flags and input files in any order]

   -h --help           print this message
   -d --decompress     force decompression
   -z --compress       force compression
   -k --keep           keep (don't delete) input files
   -f --force          overwrite existing output files
   -t --test           test compressed file integrity
   -c --stdout         output to standard out
   -q --quiet          suppress noncritical error messages
   -v --verbose        be verbose (a 2nd -v gives more)
   -L --license        display software version & license
   -V --version        display software version & license
   -s --small          use less memory (at most 2500k)
   -1 .. -9            set block size to 100k .. 900k
   --fast              alias for -1
   --best              alias for -9

   If invoked as `bzip2', default action is to compress.
              as `bunzip2',  default action is to decompress.
              as `bzcat', default action is to decompress to stdout.

   If no file names are given, bzip2 compresses or decompresses
   from standard input to standard output.  You can combine
   short flags, so `-v -4' means the same as -v4 or -4v, &c.

xz

$ xz --help
Usage: xz [OPTION]... [FILE]...
Compress or decompress FILEs in the .xz format.

  -z, --compress      force compression
  -d, --decompress    force decompression
  -t, --test          test compressed file integrity
  -l, --list          list information about .xz files
  -k, --keep          keep (don't delete) input files
  -f, --force         force overwrite of output file and (de)compress links
  -c, --stdout        write to standard output and don't delete input files
  -0 ... -9           compression preset; default is 6; take compressor *and*
                      decompressor memory usage into account before using 7-9!
  -e, --extreme       try to improve compression ratio by using more CPU time;
                      does not affect decompressor memory requirements
  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0
                      to use as many threads as there are processor cores
  -q, --quiet         suppress warnings; specify twice to suppress errors too
  -v, --verbose       be verbose; specify twice for even more verbose
  -h, --help          display this short help and exit
  -H, --long-help     display the long help (lists also the advanced options)
  -V, --version       display the version number and exit

With no FILE, or when FILE is -, read standard input.

Report bugs to <lasse.collin@tukaani.org> (in English or Finnish).
XZ Utils home page: <https://tukaani.org/xz/>

LinuxOSで標準に利用する各圧縮コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!