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」コマンド
一般的に以下の順で圧縮率が高いと言われています。
- xz形式
- bzip2形式
- 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エンジニアが自宅で学習ができるオンラインスクール比較 | |