gzipコマンド : gzip形式に圧縮/展開する
Linuxコマンド(ファイル/ディレクトリ管理)
目次
コマンド概要
-
gzipコマンドは指定したファイルをgzip形式アーカイブに圧縮するコマンドです。
- 圧縮されたファイルは、ファイルの所有権、パーミッションを変更せず、
.gz
の拡張子が付加された(圧縮された)ファイルに置き換わります。 - ファイルを指定しない場合、もしくは
-
を指定した場合、標準入力を圧縮します。 - 引数に複数のファイルを指定するとそれぞれ のファイルを個別に圧縮します。
Note複数ファイルを1つにまとめて圧縮したい場合はtar
を使ってファイルをまとめた後に圧縮することで実現できます。 - 圧縮されたファイルは、ファイルの所有権、パーミッションを変更せず、
コマンド書式
コマンド書式
gzip [オプション] [ファイル名 ... ]
オプション | 説明 |
---|---|
-c | 標準出力に結果を出力する。元ファイルはそのまま残る。 |
-d | 圧縮されたファイルを解凍する。 |
-f | 圧縮後ファイルと同じファイル名が存在する場合は上書きして圧縮する。 |
-l | 圧縮されたファイルのサイズ、圧縮されなかったファイルのサイズ、圧縮率、圧縮前ファイル名、を表示する。 |
-r | 指定したディレクトリ配下のファイルを(サブディレクトリに格納されているファイルも含め)圧縮する。 |
-S 文字列 | 圧縮ファイルの拡張子(=文字列)を指定する。「.」も含めて指定する。 |
-v | コマンドの実行詳細を出力する。 |
-数値 | 1~9(=数値)を指定する。数値が高いほど処理速度は落ちるが圧縮率が高くなる。 |
コマンド使用例
項目 | 値 | 補足 |
---|---|---|
OS | Amazon Linux 2 | |
シェル | bash 4.2.46 | |
コマンド | gzip 1.5 | |
PS1 | [\u@\h \W]$ | プロンプト表示形式は [ユーザ名@ホスト名 カレントディレクトリ名]ユーザ権限 |
PS2 | > | 継続行のプロンプト表示形式 |
gzip : ファイル圧縮
-
gzip
コマンドをオプションなしで利用すると指定したファイルをgzip圧縮することができます。コマンド例// テストファイル作成 [username@hostname ~]$ for i in `seq 1 3` > do > ls -l /usr/bin/ > "tempfile$i" > done // ファイル状態(圧縮前) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 49K Oct 1 00:00 tempfile1 -rw-r--r-- 1 username groupname 49K Oct 1 00:00 tempfile2 -rw-r--r-- 1 username groupname 49K Oct 1 00:00 tempfile3 // ファイル圧縮実行 [username@hostname ~]$ gzip * // ファイル状態(圧縮後) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile1.gz -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile2.gz -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile3.gz
gzip -c : 圧縮結果を標準出力
-
-c
オプションを使用すると圧縮結果が標準出力されます。コマンド例// テストファイル作成 [username@hostname ~]$ ls -l /usr/bin > tempfile1 // ファイル状態(圧縮前) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 49K Oct 1 00:00 tempfile1 // 圧縮結果を標準出力をファイルに書き出す ★1 [username@hostname ~]$ gzip -c tempfile1 > tempfile2.gz // ファイル状態(圧縮後) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 49K Oct 1 00:00 tempfile1 -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile2.gz // ファイル圧縮実行(オプションなし) ★2 [username@hostname ~]$ gzip tempfile1 // ファイル状態(圧縮後) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile1.gz -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile2.gz // ★1 と ★2 の結果に差分なし(差分出力なし) [username@hostname ~]$ diff tempfile1.gz tempfile2.gz
gzip -d : ファイル解凍
-
-d
オプションを使用するとgzip圧縮されたファイルを解凍することができます。コマンド例// テストファイル作成 [username@hostname ~]$ ls -l /usr/bin > tempfile1 ; gzip tempfile1 // ファイル状態(解凍前) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile1.gz // ファイル解凍実行 [username@hostname ~]$ gzip -d tempfile1.gz // ファイル状態(解凍後) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 49K Oct 1 00:00 tempfile1
gzip -f : 強制上書きして圧縮
-
-f
オプションを使用すると圧縮後に同名ファイルが存在しても強制上書きします。コマンド例// テストファイル作成 [username@hostname ~]$ ls -l /usr/bin > tempfile1 [username@hostname ~]$ ls -l /usr/sbin | gzip -c > tempfile1.gz // ファイル状態(圧縮前) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 49K Oct 1 00:00 tempfile1 -rw-r--r-- 1 username groupname 5.6K Oct 1 00:00 tempfile1.gz // ファイル圧縮(オプションなし) // →同名ファイルが存在するため上書き確認される。今回は n で上書きしない [username@hostname ~]$ gzip tempfile1 gzip: tempfile1.gz already exists; do you wish to overwrite (y or n)? n not overwritten // ファイル圧縮(同名ファイルが存在するが強制上書き) [username@hostname ~]$ gzip -f tempfile1 // ファイル状態(圧縮後) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile1.gz
gzip -l : 圧縮ファイル情報表示
-
-l
オプションを使用すると圧縮ファイル情報を表示することができます。コマンド例// テストファイル作成 [username@hostname ~]$ ls -l /usr/bin > tempfile1 ; gzip tempfile1 [username@hostname ~]$ ls -l /usr/sbin > tempfile2 ; gzip tempfile2 // ファイル状態 [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile1.gz -rw-r--r-- 1 username groupname 5.6K Oct 1 00:00 tempfile2.gz // 圧縮ファイル情報表示 [username@hostname ~]$ gzip -l tempfile* compressed uncompressed ratio uncompressed_name 9154 49679 81.6% tempfile1 5690 31571 82.1% tempfile2 14844 81250 81.8% (totals)
gzip -r : ディレクトリ配下を圧縮
-
-r
オプションを使用すると指定したディレクトリ配下のファイルを(サブディレクトリに格納されているファイルも含め)圧縮します。コマンド例// テスト用ファイル作成 [username@hostname ~]$ mkdir -p tempdir1/tempdir2 [username@hostname ~]$ ls -l /usr/bin > tempdir1/tempfile1 [username@hostname ~]$ ls -l /usr/sbin > tempdir1/tempdir2/tempfile2 // ファイル状態(圧縮前) [username@hostname ~]$ find tempdir1/ -type f tempdir1/tempdir2/tempfile2 tempdir1/tempfile1 // ディレクトリ配下ファイル圧縮(サブディレクトリ配下含む) [username@hostname ~]$ gzip -r tempdir1 // ファイル状態(圧縮後) [username@hostname ~]$ find tempdir1/ -type f tempdir1/tempdir2/tempfile2.gz tempdir1/tempfile1.gz
gzip -S : 圧縮ファイル拡張子指定
-
-S
オプションを使用すると圧縮ファイルの拡張子を指定することができます(.
も含めて指定します)。コマンド例// テスト用ファイル作成 [username@hostname ~]$ ls -l /usr/bin > tempfile1 // ファイル状態(圧縮前) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 49K Oct 1 00:00 tempfile1 // 拡張子を指定して圧縮実行 [username@hostname ~]$ gzip -S .hoge tempfile1 // ファイル状態(圧縮後) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile1.hoge
gzip -v : 実行詳細を表示して圧縮
-
-v
オプションを使用するとコマンドの実行詳細を出力します。コマンド例// テスト用ファイル作成 [username@hostname ~]$ ls -l /usr/bin > tempfile1 // ファイル状態(圧縮前) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 49K Oct 1 00:00 tempfile1 // 実行詳細を表示して圧縮実行 [username@hostname ~]$ gzip -v tempfile1 tempfile1: 81.6% -- replaced with tempfile1.gz // ファイル状態(圧縮後) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 9.0K Oct 1 00:00 tempfile1.gz
gzip -数値 : 圧縮率を指定
-
-数値
を指定すると圧縮率を指定して圧縮することができます。数値が高いほど処理速度は落ちますが圧縮率が高くなります。コマンド例// テスト用ファイル作成 [username@hostname ~]$ ls -l /usr/bin > tempfile1 // ファイル状態確認(圧縮前) [username@hostname ~]$ ls -hl tempfile* -rw-r--r-- 1 username groupname 49679 Oct 1 00:00 tempfile1 // 圧縮率を指定して圧縮する [username@hostname ~]$ for i in `seq 1 5` > do > gzip -c -$i tempfile1 > tempfile1-$i.gz> done // ファイル状態確認(圧縮後) [username@hostname ~]$ ls -l tempfile* -rw-r--r-- 1 username groupname 49679 Oct 1 00:00 tempfile1 -rw-r--r-- 1 username groupname 10893 Oct 1 00:00 tempfile1-1.gz -rw-r--r-- 1 username groupname 10656 Oct 1 00:00 tempfile1-2.gz -rw-r--r-- 1 username groupname 10382 Oct 1 00:00 tempfile1-3.gz -rw-r--r-- 1 username groupname 9715 Oct 1 00:00 tempfile1-4.gz -rw-r--r-- 1 username groupname 9268 Oct 1 00:00 tempfile1-5.gz
コメント