8.4.17 gzipコマンド(ファイルを圧縮,または圧縮されたファイルを伸長する)
形式
- 【Windows限定】
-
gzip [-1|-2|-3|-4|-5|-6|-7|-8|-9] [-c] [-d] [-f] [-k] [-l] [-N] [-n] [-q] [-r] [-t] [-v] [-o 出力先パス名] [-S サフィックス] [対象パス名 ...]
- 【UNIX限定】
-
gzip [-1|-2|-3|-4|-5|-6|-7|-8|-9] [-a] [-c] [-d] [-f] [-k] [-l] [-N] [-n] [-q] [-r] [-t] [-v] [-o 出力先パス名] [-S サフィックス] [対象パス名 ...]
機能
ファイルを圧縮,または圧縮されたファイルを伸長します。
このコマンドでは,次の操作ができます。
操作の種類 |
説明 |
---|---|
圧縮 |
ファイルを圧縮します(以降,この操作を圧縮操作と呼びます)。 -dオプション,-lオプション,および-tオプションを指定しない場合,圧縮操作をします。 圧縮するときのファイル圧縮形式はgzip形式です(以降,gzip形式で圧縮したファイルを圧縮ファイルと呼びます)。 ファイルのデータをDEFLATE圧縮方式※で圧縮します(以降,圧縮したファイルのデータを圧縮データと呼びます)。 圧縮データは,圧縮操作で作成する圧縮ファイルに格納されます。 圧縮操作では,圧縮するファイル名に拡張子「.gz」を付けた名称で圧縮ファイルを作成します。 圧縮操作では,圧縮ファイルを作成したあとに,圧縮するファイルを削除します。 |
伸長 |
-dオプションを指定することで,圧縮ファイルを伸長します(以降,この操作を伸長操作と呼びます)。 伸長できるファイル圧縮形式はgzip形式だけです。また,ファイル名の終端に,拡張子「.gz」,または「.tgz」が付いたファイルを圧縮ファイルと見なします。gzip形式で圧縮されていないファイルや,拡張子「.gz」,「.tgz」が付いていないファイルは,伸長できません。 伸長操作では,次のように生成した文字列をファイル名として,伸長したファイルを作成します。
伸長操作では,伸長したファイルを作成したあとに,圧縮ファイルを削除します。 |
表示 |
-lオプションを指定することで,圧縮ファイルの情報を表示します(以降,この操作を表示操作と呼びます)。表示する圧縮ファイルの情報の詳細は,-lオプション,-vオプションの説明,および「圧縮ファイル情報の表示」を参照してください。 |
検証 |
-tオプションを指定することで,圧縮ファイルを伸長しないで,圧縮ファイルに格納されている圧縮データの整合性を検証します(以降,この操作を検証操作と呼びます)。 |
- 注※
-
gzip形式の圧縮で用いられる圧縮方式
圧縮操作,および伸長操作で,圧縮するファイルや圧縮ファイルを削除したくない場合は,次のどちらかの方法で操作してください。
-
圧縮結果,伸長結果を標準出力に出力する。
次の操作では,ファイルを削除しないで,圧縮したファイルデータや,伸長したファイルデータを標準出力に出力します。必要に応じて,その出力をファイルにリダイレクトしたり,パイプで別のプログラムに渡したりしてください。
-
-cオプションを指定する。
-
標準入力から圧縮するファイルや圧縮ファイルを入力する。
-
-
-kオプションを指定する。
-kオプションを指定して実行すると次のように動作します。
- 【圧縮操作の場合】
-
圧縮ファイルを作成したあとも,圧縮するファイルを削除しません。
- 【伸長操作の場合】
-
伸長したファイルを作成したあとも,圧縮ファイルを削除しません。
圧縮操作,または伸長操作で,作成する圧縮ファイルや伸長後のファイルと同じ名前のファイルがすでに存在している場合は,上書きするかどうか問い合わせをします。標準入力からの応答文字がyまたはYで始まっている場合,既存のファイルを削除して,圧縮ファイルや伸長後のファイルを作成します。応答文字がyおよびYで始まっていない場合や,標準入力が使用できない場合は,操作対象ファイルの処理を中断します。問い合わせをしないで上書きを許可したい場合は,-fオプションを指定してください。
圧縮操作では,ディレクトリを圧縮できません。ディレクトリの構造を保持したまま圧縮したい場合は,tarコマンドでアーカイブを作成し,そのアーカイブを圧縮してください。また,tarコマンドの-zオプションを使用することで,アーカイブの作成と圧縮を同時にできます。tarコマンドの詳細については「8.4.34 tarコマンド(対象パス名をアーカイブに格納,およびアーカイブから抽出,表示する)」を参照してください。
検証操作で行う圧縮データの整合性検証は,伸長操作のときにも行われます。なお,圧縮ファイルの圧縮データ以外の値(圧縮方式などの情報)については,すべての操作で整合性を検証します。
環境変数GZIPにgzipコマンドのオプションを設定することで,コマンド引数に指定しなくてもオプションを使用できます。環境変数GZIPについては,「2.5 環境変数を設定する」を参照してください。
引数
操作オプションの指定
実行する操作を指定します。
次のオプションを指定しないでこのコマンドを実行した場合は,ファイルを圧縮します(圧縮操作)。
-d
--decompress
- --uncompress
-
圧縮ファイルを伸長します(伸長操作)。
-lオプションまたは-tオプションと同時に指定した場合は指定を無視します。
-l
- --list
-
圧縮ファイルの情報を表示します(表示操作)。
圧縮する前のファイルサイズや圧縮率などの情報を表示します。
-vオプションを同時に指定すると,圧縮ファイルの詳細情報も表示します。
表示内容については,「圧縮ファイル情報の表示」を参照してください。
圧縮する前のファイルサイズの表示では,ファイルサイズが4GB以上の場合,値が正しく表示されません。正しいファイルサイズを表示したい場合は,-tオプションを同時に指定してください。ただし,-tオプションを同時に指定した場合は,表示されるまでに時間が掛かることがあります。
-t
- --test
-
圧縮ファイルを伸長しないで,圧縮ファイルに格納されている圧縮データの整合性を検証します(検証操作)。
-lオプションと同時に指定した場合は,圧縮データの整合性検証と,圧縮ファイル情報の表示の両方を行います。
圧縮レベルの指定
-圧縮レベル
--fast
- --best
-
圧縮するときの圧縮速度と圧縮率をレベルで指定します。
圧縮レベルは1から9の範囲で指定します。値の意味は次のとおりです。
-
圧縮速度
1が最も速く,9が最も遅いです。
数値が大きくなるに従って,圧縮速度は遅くなります。
-
圧縮率
1が最も低く,9が最も高いです。
数値が大きくなるに従って,圧縮率は高くなります。
このオプションを指定しない場合は,圧縮レベル6で圧縮します。
--fastオプションは-1と同じ圧縮レベルで圧縮します。
--bestオプションは-9と同じ圧縮レベルで圧縮します。
このオプションを複数指定した場合,最後に指定したオプションが有効になります。
-dオプション,-lオプション,または-tオプションと同時に指定した場合は指定を無視します。
-
ファイル情報の保存,復元動作の指定
ファイル情報の保存,復元動作を指定します。
-Nオプションおよび-nオプションを同時に指定した場合,最後に指定したオプションが有効になります。-Nオプションまたは-nオプションと,-tオプションを同時に指定した場合,指定を無視します。
なお,圧縮操作および伸長操作での最終修正日時の扱いについては,「ファイルの最終アクセス日時と最終修正日時の扱い」を参照してください。表示操作でのファイル名と最終修正日時の扱いについては,「圧縮ファイル情報の表示」を参照してください。
-N
- --name
-
- 【圧縮操作の場合】
-
圧縮するファイルのファイル名と最終修正日時を圧縮ファイルに格納します。圧縮ファイルに格納するファイル名には,パス名から取り出したファイル名だけを格納します。なお,圧縮するファイルを標準入力から入力するときは,圧縮ファイル内の最終修正日時にコマンドの実行日時が格納されます。ただし,圧縮ファイルにファイル名は格納されません。
- 【伸長操作の場合】
-
伸長するときに作成するファイル名は,圧縮ファイルに格納されているファイル名とします。また,圧縮ファイルに格納されている最終修正日時を,作成したファイルに設定します。圧縮ファイルにファイル名や最終修正日時が格納されていない場合は,-nオプションを指定したときと同じ動作をします。
- 【表示操作の場合】
-
表示する圧縮ファイル情報に,圧縮ファイルに格納されているファイル名と最終修正日時を表示します。
圧縮操作ではこのオプションがデフォルトの動作です。
-n
- --no-name
-
- 【圧縮操作の場合】
-
圧縮するファイルのファイル名と最終修正日時を圧縮ファイルに格納しません。
- 【伸長操作の場合】
-
伸長するときに作成するファイル名を,圧縮ファイル名から圧縮ファイルの拡張子を取り除いたファイル名とします。また,圧縮ファイルの最終修正日時を作成したファイルに設定します。
- 【表示操作の場合】
-
表示する圧縮ファイル情報に,圧縮ファイル名から圧縮ファイルの拡張子を取り除いたファイル名と,圧縮ファイルの最終修正日時を表示します。
伸長操作,表示操作では,このオプションがデフォルトの動作です。
入出力の指定
-c
--stdout
- --to-stdout
-
- 【圧縮操作の場合】
-
圧縮したファイルデータを標準出力に出力します。
コマンド実行時に標準出力が端末に関連づけられている場合はエラーとなります。
このオプションを指定して複数のファイルを圧縮する場合,ファイル単位に圧縮と標準出力への出力を繰り返します。この動作は,catコマンドなどで複数の圧縮ファイルを連結する(1つの圧縮ファイルを作成する)場合と同じです。この動作で作られた圧縮ファイルの注意点については「注意事項」を参照してください。
- 【伸長操作の場合】
-
圧縮データの伸長結果を標準出力に出力します。
-lオプション,または-tオプションと同時に指定した場合は指定を無視します。
-k
- --keep
-
- 【圧縮操作の場合】
-
圧縮ファイルを作成したあと,圧縮元ファイルを削除しません。
- 【伸長操作の場合】
-
伸長ファイルを作成したあと,圧縮ファイルを削除しません。
-lオプション,-tオプション,または-cオプションと同時に指定した場合は指定を無視します。
-r
- --recursive
-
対象パス名に指定したパスがディレクトリの場合,ディレクトリおよびサブディレクトリを再帰的に検索します。
- 【圧縮操作の場合】
-
ディレクトリおよびサブディレクトリ内の圧縮されていないファイルを検索します。
- 【伸長操作,表示操作,検証操作の場合】
-
ディレクトリおよびサブディレクトリ内の圧縮ファイルを検索します。
Windowsの場合,-rオプションを指定して,パス名に末尾がディレクトリ区切り文字のディレクトリへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。
検索中に遭遇したファイルを圧縮ファイルとして扱うかどうかは,ファイル名の拡張子で決定します。圧縮ファイルとして扱うファイル名の拡張子については,「圧縮ファイルの拡張子の扱い」を参照してください。
ディレクトリのシンボリックリンクは,操作の種類や指定するオプションでリンク先をたどります。ディレクトリのシンボリックリンクを指定したときの動作については,「リンクファイルの扱い」を参照してください。
-o出力先パス名
- --output=出力先パス名
-
- 【圧縮操作の場合】
-
指定したパス名で圧縮ファイルを作成します。
また,圧縮操作では圧縮するファイルが削除されます。
- 【伸長操作の場合】
-
指定したパス名で伸長するファイルを作成します。また,伸長操作では,圧縮ファイルが削除されます。伸長操作で-Nオプションを同時に指定した場合,圧縮ファイルに格納されている最終修正日時を使用します。ファイル名は出力先パス名に従います。
このオプションは,次のどれかと同時に指定するとエラー終了します。
-
-cオプション,-tオプション,-lオプションまたは-rオプションを指定する。
-
圧縮するファイルや圧縮ファイルを複数指定する。
-
圧縮するファイルや圧縮ファイルを標準入力から入力する。
- 対象パス名
-
- 【圧縮操作の場合】
-
圧縮するファイルのパス名を指定します。
- 【伸長操作,表示操作,検証操作の場合】
-
圧縮ファイルのパス名を指定します。
圧縮操作で圧縮ファイルを指定したときや,伸長操作,表示操作,および検証操作で圧縮ファイル以外のファイルを指定したときの扱いについては,「圧縮ファイルの拡張子の扱い」を参照してください。
対象パス名は複数指定できます。
対象パス名に指定がない,または対象パス名として「-」を指定した場合は,圧縮するファイルデータまたは圧縮データを標準入力から入力します。圧縮操作,伸長操作では,標準入力から圧縮するファイルデータまたは圧縮データを入力する場合,圧縮したファイルデータや圧縮データの伸長結果を標準出力に出力します。なお,圧縮操作では,標準出力が端末に関連づけられているとエラーになります。伸長操作では,標準入力が端末に関連づけられているとエラーになります。
対象パス名に指定できるファイルの種類は次のとおりです。
-
圧縮操作および伸長操作では,通常ファイルだけを指定できます。また,リンクファイルを指定できるかどうかは,指定するオプションによって異なります。リンクファイルを指定したときの動作については,「リンクファイルの扱い」を参照してください。
-
表示操作および検証操作では,通常ファイルとリンクファイルを指定できます。
-
-rオプションを指定するときはディレクトリを指定できます。ディレクトリのシンボリックリンクを指定できるかどうかは,操作の種類や指定するオプションによって異なります。ディレクトリのシンボリックリンクを指定したときの動作については,「リンクファイルの扱い」を参照してください。
指定した対象パス名が,操作できるファイルの種類以外のときはエラーとなります。
その他の指定
-a
- --ascii
-
- 【UNIX限定】
-
OSが提供するgzipコマンドとの互換のためのオプションです。
指定しても有効になりません。ただし,標準エラー出力にメッセージ(gzip: Option -a is ignored on this system)が出力されます。
-f
- --force
-
次の操作を許可します。
【圧縮操作の場合】
-
リンクファイルのリンク先をたどります。リンクファイルについては「リンクファイルの扱い」を参照してください。
-
作成する圧縮ファイルと同名のファイルがすでに存在する場合,応答要求を行わないで上書きします。
-
-cオプションを指定しているときや,圧縮するファイルデータを標準入力から入力するときに,標準出力が端末に関連づけられていても,圧縮したファイルデータを出力します。
【伸長操作の場合】
-
リンクファイルのリンク先をたどります。リンクファイルについては「リンクファイルの扱い」を参照してください。
-
作成する伸長後のファイルと同名のファイルがすでに存在する場合,応答要求を行わないで上書きします。
-
操作するファイルのデータを標準入力から入力するとき,標準入力が端末に関連づけられていても,入力を開始します。
-
-S サフィックス
- --suffix=サフィックス
-
指定するサフィックス(任意の文字による文字列)を圧縮ファイルの拡張子として扱います。
- 【圧縮操作の場合】
-
拡張子「.gz」の代わりに,指定したサフィックスを付けて圧縮ファイルを作成します。
- 【伸長操作の場合】
-
拡張子「.gz」,「.tgz」とともに,サフィックスが付いたファイルを圧縮ファイルと見なします。
指定できるサフィックスの長さの範囲は1~30バイトです。サフィックスにマルチバイト文字は使用できません。サフィックスを指定したときの動作については,「圧縮ファイルの拡張子の扱い」を参照してください。
-q
- --quiet
-
メッセージの出力を抑止します。
ただし,次のメッセージは抑止の対象外です。
-
オプション解析のエラーメッセージ
-
圧縮操作の場合,圧縮ファイルと同名のファイルがすでに存在したとき,上書きするかどうかを確認するメッセージ
-
伸長操作の場合,伸長後のファイルと同名のファイルがすでに存在したとき,上書きするかどうかを確認するメッセージ
【表示操作の場合】
次の情報を表示しません。
-
ヘッダ行
-
複数圧縮ファイルの合計情報
このオプションの後ろに-vオプションを指定した場合,このオプションの指定は取り消されます。
-
-v
- --verbose
-
次の詳細情報を表示します。
-
圧縮操作,伸長操作,および検証操作の場合,操作結果の詳細情報として,「表8-12 圧縮操作,伸長操作,検証操作で出力する詳細情報」に示す内容を標準エラー出力に出力します。
-
表示操作の場合,表示する圧縮ファイル情報に,圧縮方式などの詳細情報も表示します。表示する内容については,「圧縮ファイル情報の表示」を参照してください。
-
-rオプションを指定してディレクトリ内のファイルを検索するとき,操作対象外のファイルに対して,次のメッセージを標準エラー出力に出力します。
【圧縮操作の場合】
圧縮ファイルに対して,「gzip: ファイル名 already has サフィックス suffix -- unchanged」を出力します。
【伸長操作,表示操作,検証操作の場合】
圧縮ファイル以外のファイルに対して,「gzip: ファイル名: Unknown suffix: ignored」を出力します。
このオプションの後ろに-qオプションを指定した場合,このオプションの指定は取り消されます。
-
操作の種類 |
詳細情報の内容※と説明(上段:内容,下段:説明) |
---|---|
圧縮 |
[圧縮するファイル名: ]圧縮率%[ -- replaced with 圧縮ファイル名] |
圧縮するファイルの名称,圧縮率,および作成した圧縮ファイルの名称を出力します。 -cオプションを指定したときは,圧縮ファイル名は出力されません。 標準入力から入力したときは,圧縮するファイル名と圧縮ファイル名は出力されません。 |
|
伸長 |
圧縮ファイル名: 圧縮率%[ -- replaced with 伸長後のファイル名] |
圧縮ファイルの名称,圧縮率,および作成した伸長後のファイルの名称を出力します。 -cオプションを指定したときは,伸長後のファイル名は出力されません。 標準入力から入力したときは,詳細情報は出力されません。 |
|
検証 |
[圧縮ファイル名: ] OK |
圧縮ファイルの名称と圧縮ファイルデータの整合性に問題がないことを示す「OK」を出力します。 標準入力から入力したときは,圧縮ファイル名は出力されません。 |
- 注※
-
-
「圧縮するファイル名: 」は「圧縮するファイル名:<タブ文字>」で出力されます。
-
「圧縮ファイル名: 」は「圧縮ファイル名:<タブ文字>」で出力されます。
-
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了。 |
1 |
エラー終了。 圧縮操作,伸長操作の結果は次のとおりです。
|
2 |
エラー終了。 圧縮操作,伸長操作の結果は次のとおりです。
なお,複数ファイルの操作で,終了コード1と2の両方のエラーが発生したときは,終了コードは1が返ります。 |
3 |
不正なオプションを指定しました。 |
次のメッセージが出力される場合は,終了コード1になります。
-
「gzip: ファイル名 already has サフィックス suffix -- unchanged」
-
「gzip: ファイル名: Unknown suffix: ignored」
ファイルの最終アクセス日時と最終修正日時の扱い
圧縮操作,および伸長操作では,ファイルの最終アクセス日時と最終修正日時を次のように扱います。
-
圧縮操作
圧縮操作では,通常,圧縮するファイルの最終アクセス日時と最終修正日時を圧縮ファイルに引き継ぎます。また,圧縮するファイルの最終修正日時を圧縮ファイルに格納します。
最終アクセス日時と最終修正日時の扱いは,圧縮するファイルの入力元やオプションの指定によって,次の表に示す動作となります。
表8‒14 圧縮操作時の最終アクセス日時と最終修正日時の扱い 圧縮するファイルの入力元
圧縮結果の出力先
オプション※1
圧縮結果
圧縮ファイルの最終アクセス日時・最終修正日時
圧縮ファイルに格納される最終修正日時※2
ファイル
圧縮ファイル
-N
圧縮するファイルの最終アクセス日時・最終修正日時
圧縮するファイルの最終修正日時
-n
圧縮するファイルの最終アクセス日時・最終修正日時
圧縮ファイルには最終修正日時が格納されません
標準出力
(-cオプション指定)
-N
引き継ぎません※3
圧縮するファイルの最終修正日時※2
-n
引き継ぎません※3
圧縮ファイルには最終修正日時が格納されません※2
標準入力
標準出力
-N
引き継ぎません※3
コマンドの実行日時※2
-n
引き継ぎません※3
圧縮ファイルには最終修正日時が格納されません※2
- 注※1
-
-Nオプション,-nオプションのどちらも指定しなかった場合,-Nオプションが指定されたものとします。
- 注※2
-
圧縮結果の出力先が標準出力の場合,標準出力に出力した圧縮ファイルデータ内の最終修正日時を指します。
- 注※3
-
最終アクセス日時と最終修正日時の扱いは,圧縮結果の出力先の指定(リダイレクトやパイプなど)に従います。
なお,ファイルの最終アクセス日時と最終修正日時の設定に失敗した場合はエラーとなりますが,圧縮ファイルは作成され,圧縮するファイルは削除されます。
-
伸長操作
伸長操作では,通常,圧縮ファイルの最終アクセス日時と最終修正日時を,伸長したファイルに引き継ぎます。
最終修正日時の扱いは,オプションの指定や圧縮ファイルに最終修正日時が格納されているかどうかによって,次の表に示す動作となります。
表8‒15 伸長操作時の最終アクセス日時と最終修正日時の扱い オプション※
圧縮ファイル内の最終修正日時の格納
伸長結果
伸長したファイルに設定する最終アクセス日時
伸長したファイルに設定する最終修正日時
-N
あり
圧縮ファイルの最終アクセス日時
圧縮ファイルに格納されている最終修正日時
なし
圧縮ファイルの最終アクセス日時
圧縮ファイルの最終修正日時
-n
あり
圧縮ファイルの最終アクセス日時
圧縮ファイルの最終修正日時
なし
圧縮ファイルの最終アクセス日時
圧縮ファイルの最終修正日時
- 注※
-
-Nオプション,-nオプションのどちらも指定しなかった場合,-nオプションが指定されたものとします。
次のような伸長操作の場合,圧縮ファイルに格納されている最終修正日時は使用しません。
-
標準入力から圧縮ファイルを入力し,伸長結果を標準出力に出力する場合。
-
-cオプションを指定して,伸長結果を標準出力に出力する場合。
この伸長操作での最終アクセス日時と最終修正日時の扱いは,伸長結果の出力先の指定(リダイレクトやパイプなど)に従います。
なお,ファイルの最終アクセス日時と最終修正日時の設定に失敗した場合はエラーとなりますが,伸長したファイルは作成され,圧縮ファイルは削除されます。
圧縮・伸長時のユーザーID・グループIDとパーミッションの扱い
UNIXの場合,ファイルのユーザーID・グループIDとパーミッションを次のように扱います。
- 【圧縮操作の場合】
-
圧縮するファイルのユーザーID・グループIDとパーミッションを圧縮ファイルに引き継ぎます。
- 【伸長操作の場合】
-
圧縮ファイルのユーザーID・グループIDとパーミッションを伸長したファイルに引き継ぎます。
また,ユーザーID・グループIDとパーミッションは次のように扱います。
-
スティッキービット,setuidビットおよびsetgidビットは引き継ぎません。
-
ユーザーID・グループIDの引き継ぎに失敗してもエラーにはなりません。引き継ぎに失敗したときは,コマンド実行者のユーザーID,グループIDが設定されます。
-
パーミッションの引き継ぎに失敗した場合はエラーとなります。しかし,圧縮ファイルや伸長したファイルは作成されます。また,圧縮するファイルや圧縮ファイルも削除されます。
-
標準入力から入力する場合や,-cオプションを指定して圧縮結果,伸長結果を標準出力に出力する場合,引き継がれません。ユーザーID・グループIDとパーミッションの扱いは,標準出力の出力先の指定(リダイレクトやパイプなど)に従います。
Windowsの場合,ファイルの所有者,ACLおよびファイル属性は引き継ぎません。
圧縮ファイルの拡張子の扱い
圧縮ファイルの拡張子の扱いについて説明します。なお,標準入力から圧縮するファイルや圧縮ファイルを入力する場合は,拡張子を意識する必要はありません。
-
圧縮操作での圧縮済みファイルの扱い
圧縮操作では,圧縮するファイルの名称に,拡張子「.gz」,「.tgz」または-Sオプションに指定したサフィックスが付いている場合,圧縮済みファイルと見なして,圧縮しません。また,圧縮済みファイルに対して,メッセージ「gzip: ファイル名 already has サフィックス suffix -- unchanged」を出力します。
-rオプションを指定し,ディレクトリ内を検索して見つかった圧縮済みファイルに対しては,圧縮しません。また,メッセージ「gzip: ファイル名 already has サフィックス suffix -- unchanged」も出力しません。なお,-vオプションを指定しているときはメッセージを出力します。
-cオプションを指定したときは,圧縮済みファイルも圧縮します。
-
伸長,表示,検証対象となる圧縮ファイルの拡張子
伸長操作,検証操作,表示操作では,圧縮ファイルの拡張子の扱いは次のとおりです。
-
引数に圧縮ファイル名を指定するとき
【伸長操作の場合】
圧縮ファイル名に,拡張子「.gz」,「.tgz」,または-Sオプションに指定したサフィックスが付いているとき,圧縮ファイルと見なして,伸長します。それ以外のファイルの場合は,伸長しません。また,指定されたファイルに対してメッセージ「gzip: ファイル名: Unknown suffix: ignored」を出力します。
【表示操作,検証操作の場合】
圧縮ファイル名に,拡張子「.gz」,「.tgz」および-Sオプションに指定したサフィックスが付いていなくても操作します。
-
-rオプション指定によりディレクトリ内を検索するとき
ディレクトリ内に存在する,拡張子「.gz」,「.tgz」および-Sオプションに指定したサフィックスが付いているファイルに対して操作します。拡張子「.gz」,「.tgz」または-Sオプションに指定したサフィックスが付いていないファイルに対しては,操作しません。また,メッセージ「gzip: ファイル名: Unknown suffix: ignored」も出力しません。なお,-vオプションを指定しているときは,メッセージを出力します。
なお,-cオプションを指定したときは,伸長操作ではファイル名に拡張子「.gz」,「.tgz」および-Sオプションに指定したサフィックスが付いていなくても伸長を試みます。
-
-
拡張子の文字種別の扱い
圧縮ファイルの拡張子の確認では,拡張子「.gz」,「.tgz」および-Sオプションに指定したサフィックスは,英大文字と英小文字を区別しません。例えば,圧縮するファイルの名称が,「file.GZ」でも圧縮ファイルと見なします。
-
圧縮ファイル名の拡張子の補完
伸長操作,表示操作,および検証操作では,引数に圧縮ファイル名を指定するとき,次の指定ができます。
-
圧縮ファイルの拡張子が「.gz」の場合,「.gz」の記述を省略できます。
-
圧縮ファイル名の終端が-Sオプションに指定したサフィックスの場合,サフィックスの記述を省略できます。
拡張子「.gz」や-Sオプションに指定したサフィックスは,コマンドで補完します。
ただし,拡張子が「.tgz」の圧縮ファイルは,「.tgz」の記述を省略できません。
引数に指定した圧縮ファイル名に拡張子「.gz」が補完される例を次に示します。
$ ls file1.txt.gz $ gzip -d file1.txt $ ls file1.txt
-
なお,操作するディレクトリ内に,複数のファイルが格納されているときは,次のように動作します。
-
2つの圧縮ファイルの名称の違いが,拡張子「.gz」と-Sオプションに指定したサフィックスだけのときは,-Sオプションのサフィックスが付いた圧縮ファイルが操作対象です。
-
拡張子「.gz」や-Sオプションに指定したサフィックスが付いているファイルと付いていないファイルが存在するときは,付いていないファイルが操作対象です。
拡張子の補完では,拡張子「.gz」および-Sオプションに指定したサフィックスの英大文字,英小文字の扱いは,OSによって異なります。
- 【UNIXの場合】
-
英大文字,英小文字の相違を区別します。
-
拡張子「.gz」
英小文字の「.gz」が付いた圧縮ファイルが補完対象です。
「.GZ」,「.gZ」および「.Gz」が付いた圧縮ファイルは補完の対象になりません。
-
-Sオプションに指定したサフィックス
-Sオプションに指定したサフィックスが付いた圧縮ファイルが補完対象です。
指定したサフィックスと,英大文字および英小文字の構成だけが異なるサフィックスが付いた圧縮ファイルは,補完の対象になりません。
-
- 【Windowsの場合】
-
英大文字,英小文字の相違を区別しません。
-
拡張子「.gz」
英小文字の「.gz」,「.GZ」,「.gZ」および「.Gz」が付いた圧縮ファイルが補完対象です。
-
-Sオプションに指定したサフィックス
-Sオプションに指定したサフィックスが付いた圧縮ファイルが補完対象です。
指定したサフィックスと,英大文字および英小文字の構成だけが異なるサフィックスが付いた圧縮ファイルも補完対象です。
-
圧縮ファイル情報の表示
圧縮ファイル情報の表示では,最初にヘッダ行として項目名を表示して,次の行に圧縮ファイル情報を表示します。ヘッダ行の表示は,-qオプションを使用して抑止できます。
-
表示する項目
次の項目(列)を表示します。項目「method」,「crc」,「date」,「time」は,-vオプションを指定したときに表示します。
表8‒16 圧縮ファイル情報の表示項目(列) 項目名
内容
method
圧縮方式。次の値を表示します。
defla:圧縮データは,DEFLATE圧縮方式で圧縮されています。
crc
圧縮前のファイルデータの巡回冗長検査(CRC)値。8桁の16進数で表示します
この値を使用して,圧縮されたファイルデータの整合性を検証します。
サイズが0のファイルを圧縮しているときは,00000000を表示します。
標準入力から圧縮ファイルを入力したときは,ffffffffを表示します※1。
date
伸長後のファイルに設定されるファイルの最終修正日時の月日。年は表示されません。
表示する内容は,圧縮ファイルの入力元や指定するオプションによって異なります。
詳細は「表8-16 「date」,「time」項目の表示内容」を参照してください。
time
伸長後のファイルに設定されるファイルの最終修正日時の時分。秒は表示されません。
表示する内容は,圧縮ファイルの入力元や指定するオプションによって異なります。
詳細は「表8-16 「date」,「time」項目の表示内容」を参照してください。
compressed
圧縮ファイルのサイズ。
標準入力から圧縮ファイルを入力したときは,-1を表示します※1。
uncompressed
圧縮する前のファイルのサイズ。
標準入力から圧縮ファイルを入力したときは,-1を表示します※1。
圧縮する前のファイルのサイズが4GB以上の場合,値が正しく表示されません※2。
ratio
圧縮率(%)。小数点第1位までを表示します。
圧縮率は,圧縮する前のファイルのサイズと,圧縮ファイル内の圧縮データの長さを元に算出します。なお,圧縮データの長さは,圧縮ファイルのサイズとは異なります。
「compressed」項目や「uncompressed」項目に-1が表示されるときは,「0.0%」を表示します。
サイズが小さいファイルや,圧縮効果が小さいファイルを圧縮したときは,圧縮率はマイナスになる場合があります。
uncompressed_name
伸長後のファイル名。圧縮ファイル名をディレクトリからのパス名で指定しているときは,パス名のディレクトリ部分と伸長後のファイル名によって生成したパス名を表示します。標準入力から圧縮ファイルを入力したときは,「stdout」を表示します。
表示する内容は,圧縮ファイルの入力元や指定するオプションによって異なります。
詳細は「表8-17 「uncompressed_name」項目の表示内容」を参照してください。
- 注※1
-
-tオプションを指定すると,標準入力から入力する場合も,圧縮ファイルから入力したときと同じ内容を表示できます。ただし,圧縮ファイルのサイズによっては,表示されるまでに時間が掛かる場合があります。
- 注※2
-
-tオプションを使用して,4GB以上のサイズを表示できます。ただし,表示されるまでに時間が掛かる場合があります。
表8‒17 「date」,「time」項目の表示内容 圧縮ファイルの入力元
圧縮ファイル内の最終修正日時の格納※1
指定するオプション※2
表示する最終修正日時の月日と時分
ファイル
あり
-N
圧縮ファイル内に格納されている最終修正日時(圧縮する前のファイルの最終修正日時)
-n
圧縮ファイル自身の最終修正日時
なし
-N
圧縮ファイル自身の最終修正日時
-n
圧縮ファイル自身の最終修正日時
標準入力
あり
-N
圧縮ファイル内に格納されている最終修正日時(圧縮する前のファイルの最終修正日時)
-n
コマンドの実行日時
なし
-N
コマンドの実行日時
-n
コマンドの実行日時
- 注※1
-
圧縮ファイル内に最終修正日時が格納されるかどうかは,圧縮操作での圧縮するファイルの入力方法やオプションの指定によって決まります。圧縮操作での最終修正日時の扱いについては,「ファイルの最終アクセス日時と最終修正日時の扱い」を参照してください。
- 注※2
-
-Nオプション,-nオプションのどちらも指定しなかった場合,-nオプションが指定されたものとします。
表8‒18 「uncompressed_name」項目の表示内容 圧縮ファイルの入力元
圧縮ファイル内のファイル名の格納※1
指定するオプション※2
表示する伸長後のファイル名
ファイル
あり
-N
圧縮ファイルに格納されているファイル名(圧縮する前のファイルの名称)
-n
圧縮ファイル名から生成(圧縮ファイルの拡張子を取り除くなど)したファイル名
なし
-N
圧縮ファイル名から生成(圧縮ファイルの拡張子を取り除くなど)したファイル名
-n
圧縮ファイル名から生成(圧縮ファイルの拡張子を取り除くなど)したファイル名
標準入力
あり
-N
圧縮ファイルに格納されているファイル名(圧縮する前のファイルの名称)
-n
「stdout」
なし
-N
「stdout」
-n
「stdout」
- 注※1
-
圧縮ファイル内にファイル名が格納されるかどうかは,圧縮操作での圧縮するファイルの入力方法や,-Nオプション,-nオプションの指定によって決まります。圧縮ファイル内に格納されるファイル名については,引数-Nオプション,-nオプションの説明を参照してください。
- 注※2
-
-Nオプション,-nオプションのどちらも指定しなかった場合,-nオプションが指定されたものとします。
-
複数圧縮ファイルの合計情報の表示
引数に複数の圧縮ファイルを指定するときや,-rオプションでディレクトリ内のすべての圧縮ファイルを対象とするときは,ファイル単位に圧縮ファイル情報を表示したあと,最終行に複数圧縮ファイルの合計情報を表示します。表示内容を「表8-18 複数圧縮ファイルの合計情報の表示内容」に示します。
この表示は,-qオプションを使用して抑止できます。また,表示する複数ファイルに,標準入力からの入力が含まれる(「compressed」項目や「uncompressed」項目に-1が表示される)場合,表示されません。
表8‒19 複数圧縮ファイルの合計情報の表示内容 項目名
内容
compressed
圧縮ファイルのサイズの合計値。
uncompressed
圧縮する前のファイルのサイズの合計値。
ratio
圧縮ファイルのサイズの合計値と,圧縮ファイルデータの長さの合計値を元に計算した圧縮率。
uncompressed_name
「(totals)」。
リンクファイルの扱い
このコマンドでは,リンクファイル(シンボリックリンクおよびハードリンク)を次のように扱います。
- 【圧縮操作,伸長操作の場合】
-
圧縮操作,および伸長操作では,圧縮するファイルや圧縮ファイルのリンクファイルは操作できません。ただし,-fオプションを指定すると,リンクファイルを扱えます。-fオプションを指定したときのリンクファイル操作時の動作は次のとおりです。
操作の種類
リンクファイル操作時の動作
圧縮
-
リンク先のファイルのデータを圧縮します。
-
ファイル名から圧縮ファイル名を生成するときは,リンクファイル名を使用します。
-
圧縮ファイルに格納するファイル名には,リンクファイル名を格納します。
-
圧縮後には,リンクファイルを削除します。
伸長
-
リンク先のファイルの圧縮データを伸長します。
-
ファイル名から伸長するファイル名を生成するときは,リンクファイル名を使用します。
-
伸長後には,リンクファイルを削除します。
なお,圧縮後や伸長後にリンクファイルを削除したくない場合は-kオプションを指定してください。
-cオプションを指定する場合は,リンクファイルを扱えます。
-rオプションでディレクトリ内を検索するとき,ディレクトリへのシンボリックリンクを扱えます。ただし,-rオプションと同時に,-fオプションを指定してください。-fオプションを指定すると,ディレクトリへのシンボリックリンクのリンク先をたどります。また,ディレクトリを再帰的に検索したときも,遭遇したディレクトリのシンボリックリンクのリンク先をたどります。なお,-cオプションを指定したときも,ディレクトリのシンボリックリンクのリンク先をたどります。
-
- 【表示操作,検証操作の場合】
-
表示操作,および検証操作では,リンクファイルを扱えます。圧縮ファイルにリンクファイルを指定した場合,リンク先をたどり,リンク先の圧縮ファイルを参照して,表示や検証をします。ただし,表示操作で表示する伸長後のファイル名には,リンク先の圧縮ファイル名ではなく,リンクファイル名から生成した名称を表示します。
-rオプションでディレクトリ内を検索するとき,ディレクトリへのシンボリックリンクはリンク先をたどります。また,ディレクトリを再帰的に検索したときも,遭遇したディレクトリのシンボリックリンクのリンク先をたどります。
注意事項
-
このコマンドは,このコマンド自身が作成した圧縮ファイルの操作だけをサポートします。次の操作は正常に行われない場合があります。
-
他プログラム(OS提供のgzipコマンドなど)で作成したgzip形式の圧縮ファイルを,Advanced Shell提供のgzipコマンドで操作する。
-
Advanced Shell提供のgzipコマンドで作成した圧縮ファイルを,gzip形式の圧縮ファイルを扱えるプログラム(OS提供のgzipコマンドなど)で操作する。
-
-
サイズが小さいファイルや,圧縮効果が小さいファイルを圧縮した場合,圧縮ファイルのファイルサイズが圧縮前のファイルサイズより大きくなることがあります。
-
-Nオプションを指定して伸長操作または表示操作をする場合に,圧縮ファイルに格納されているファイル名が次のときは,OSやエンコーディングが圧縮時と異なると,伸長や表示が正常に行われないおそれがあります。
-
マルチバイト文字などのエンコーディングに依存する文字を含んでいる。
-
ファイル名にOS固有の指定可能文字を含んでいる(例:UNIXで\をファイル名の文字として使用する)。
-
-
圧縮するファイルのパス名やファイル名の長さが次の値を超えるときは,圧縮ファイルの作成に失敗します。この場合,-oオプションや-cオプションを使用して圧縮ファイルを作成してください。
-
「OSが定める最大パス名長 - 圧縮ファイルの拡張子の長さ」
-
「OSが定める最大ファイル名長 - 圧縮ファイルの拡張子の長さ」
-
-
次のどれかに該当する場合,-Nオプションを指定して伸長操作をすると,伸長後のファイルの作成に失敗します。
-
圧縮ファイルに格納されているファイル名の長さが,OSが定める最大ファイル名長を超えている。
-
圧縮ファイルに格納されているファイル名を元に生成したパス名の長さが,OSが定める最大パス名長を超えている。
-
-
圧縮ファイルへの最終修正日時に格納できる日時の範囲は,UTC(協定世界時)の1970年1月1日0時0分1秒~2106年2月7日6時28分15秒です。範囲外のときは格納されません。
-
圧縮操作中にコマンドの実行を中断すると,圧縮途中の圧縮ファイルが残ることがあります。
-
伸長操作中にコマンドの実行を中断すると,伸長途中の伸長ファイルが残ることがあります。
-
圧縮するファイルに対して削除権限がない場合,圧縮操作で行う圧縮するファイルの削除が失敗します。圧縮するファイルの削除に失敗しても,圧縮ファイルは作成されています。
-
圧縮ファイルに対して削除権限がない場合,伸長操作で行う圧縮ファイルの削除が失敗します。圧縮ファイルの削除に失敗しても,伸長後のファイルは作成されています。
-
すでに存在するファイルと同名の圧縮ファイル,伸長後のファイルを上書きで作成する場合,最初に既存のファイルを削除します。そのため,処理中にエラーが発生すると,既存のファイルは削除されている場合があります。
-
操作対象のファイルと出力先のファイルの実体が同じ(シンボリックリンク先が同じ,またはハードリンク先が同じ)場合,エラーになります。
-
-cオプションを使用して複数のファイルから作成した圧縮ファイルや,catコマンドなどで複数の圧縮ファイルを連結して作成した圧縮ファイルは,次のように伸長操作,または表示操作が行われます。
-
複数のファイルのデータが出力された伸長後のファイルが1つ作成されます。圧縮前のそれぞれのファイルごとに,伸長後のファイルが作成されることはありません。
-
-Nオプションを指定して伸長する場合,圧縮ファイル作成時に最初に指定したファイルの圧縮ファイル情報中のファイル名で,伸長後のファイルが作成されます。
-
表示操作では,圧縮ファイル作成時に最後に指定したファイルのサイズが,圧縮する前のファイルのサイズとして表示されます。また,圧縮率はその値を元に算出されます。なお,-tオプションを指定した場合は,すべてのファイルサイズの合計値が表示されます。
-
-
Windowsの場合,圧縮するファイル名や圧縮ファイル名にショートネームを指定したとき,ショートネームをファイル名とした圧縮ファイルや伸長後のファイルが作成されます。
-
Windowsの場合,ファイル名の英大文字と英小文字を区別しません。このため,次の動作となります。
-
圧縮ファイル名や伸長後のファイル名と同じスペルで英大文字,英小文字だけが異なるファイルは,同一ファイルと見なします。例えば,作成する圧縮ファイルや伸長後のファイルと同じスペルで,大文字・小文字だけが異なる名称のファイルは,同名のファイルがすでに存在していると見なします。
-
圧縮するファイル名や圧縮ファイル名を,同じスペルで大文字・小文字だけを替えて引数に指定した場合,引数に指定したファイル名で圧縮ファイルや伸長後のファイルが作成されます。
-
-
Windowsの場合,操作対象のファイルや上書きする既存のファイルが別のプログラムで使用されていると,そのファイルの削除に失敗することがあります。
-
Windowsの場合,圧縮するファイルや伸長する圧縮ファイルに読み取り専用属性が設定されていると,圧縮するファイルの削除や圧縮ファイルの削除で,ファイルごとに1550ミリ秒の待ち時間が発生します。ワイルドカード指定などによる複数ファイルの指定や,-rオプションを指定してディレクトリ内の複数のファイルを圧縮・伸長するときは,事前に読み取り専用属性を解除してください。
使用例
-
ファイルを圧縮します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip file001.txt C:\TEMP>%ADSH_OSCMD_DIR%ls file001.txt.gz
-
-kオプションを使用して,ファイルを残したまま圧縮します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -k file001.txt C:\TEMP>%ADSH_OSCMD_DIR%ls file001.txt file001.txt.gz
-
-oオプションを使用して,コマンドで生成する圧縮ファイル名とは別の名称で,圧縮ファイルを作成します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -o save_file002.gz file002.txt C:\TEMP>ls save_file002.gz
-
-cオプションを使用して,ファイルを残したまま圧縮します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -c file003.txt > backup_file003.gz C:\TEMP>ls backup_file003.gz file003.txt
-
-Sオプションを使用して,「.gz」以外の拡張子の圧縮ファイルを作成します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -S ".gzip" file004.txt C:\TEMP>ls file004.txt.gzip
-
-rオプションを使用して,ディレクトリ内のファイルを圧縮します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -r DIR002 C:\TEMP>ls -R DIR002 DIR003 file001.txt.gz file002.txt.gz file003.txt.gz DIR002\DIR003: file004.txt.gz file005.txt.gz
-
-vオプションを使用して,圧縮するときに圧縮率と圧縮ファイル名を出力します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -v file005.txt file005.txt: 26.5% -- replaced with file005.txt.gz
なお,圧縮率と圧縮ファイル名は標準エラー出力に出力されます。
-
圧縮ファイルを伸長します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -d file001.txt.gz C:\TEMP>%ADSH_OSCMD_DIR%ls file001.txt
-
-oオプションを使用して,コマンドで生成する伸長後のファイル名とは別の名称で,伸長したファイルを作成します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -o FILE002.txt save_file002.gz C:\TEMP>ls FILE002.txt
-
-cオプションを使用して,圧縮ファイルを残したまま伸長します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -c backup_file003.gz >file003.txt C:\TEMP>ls backup_file003.gz file003.txt
-
-Nオプションを使用して,圧縮する前のファイル名で伸長します。
C:\DIR001>%ADSH_OSCMD_DIR%gzip -d -N backup_file003.gz C:\DIR001>ls file003.txt
-
-Sオプションを使用して,「.gz」以外の拡張子の圧縮ファイルを伸長します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -S ".gzip" file004.txt.gzip C:\TEMP>ls file004.txt
-
-rオプションを使用して,ディレクトリ内の圧縮ファイルを伸長します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -r DIR002 C:\TEMP>ls -R DIR002 DIR003 file001.txt file002.txt file003.txt DIR002\DIR003: file004.txt file005.txt
-
-vオプションを使用して,伸長するときに伸長率と伸長後のファイル名を出力します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -v file005.txt.gz file005.txt.gz: 26.5% -- replaced with file005.txt
なお,伸長率と伸長後のファイル名は標準エラー出力に出力されます。
-
圧縮ファイル情報を表示します。
C:\TEMP>gzip -l file001.txt.gz compressed uncompressed ratio uncompressed_name 25025357 34040107 26.5% file001.txt
-
-vオプションを使用して,詳細な圧縮ファイル情報を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -l -v file001.txt.gz method crc date time compressed uncompressed ratio uncompressed_name defla fe65cbfa Dec 23 16:52 25025357 34040107 26.5% file001.txt
-
複数の圧縮ファイルの圧縮ファイル情報を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -l -v file001.txt.gz file002.txt.gz file003.txt.gz file004.txt.gz file005.txt.gz method crc date time compressed uncompressed ratio uncompressed_name defla 5d262330 Dec 23 17:12 16142040 17838735 9.5% file001.txt defla 0e523a79 Dec 23 17:12 18824484 20542848 8.4% file002.txt defla 1cb8a527 Dec 23 17:12 12476069 17673807 29.4% file003.txt defla b167ed5d Dec 23 17:12 19489411 22390086 13.0% file004.txt defla 9b4d3435 Dec 23 17:12 19631128 22513931 12.8% file005.txt 86563132 100959407 14.3% (totals)
-
圧縮ファイルの整合性を検証します。また,-vオプションを指定して検証結果を出力します。
C:\TEMP>gzip -t -v file001.txt.gz file001.txt.gz: OK
なお,検証結果は標準エラー出力に出力されます。
-
tarコマンドのアーカイブ結果を圧縮します。
C:\TEMP>%ADSH_OSCMD_DIR%tar -cvf - DIR002 | %ADSH_OSCMD_DIR%gzip > DIR002.tar.gz DIR002 DIR002/DIR003 DIR002/DIR003/file004.txt DIR002/DIR003/file005.txt DIR002/file001.txt DIR002/file002.txt DIR002/file003.txt
-
圧縮したアーカイブの伸長結果をtarコマンドに渡してアーカイブを展開します。
C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -c DIR002.tar.gz | %ADSH_OSCMD_DIR%tar -xvf - DIR002 DIR002\DIR003 DIR002\DIR003\file004.txt DIR002\DIR003\file005.txt DIR002\file001.txt DIR002\file002.txt DIR002\file003.txt