投稿日:
2020年1月27日
最終更新日:
【zip,gz,tarの違い】コマンドで簡単にgz,tar形式を圧縮及び解凍する方法まとめ【ファイルやディレクトリも可能】
YouTubeも見てね♪
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
レッドブル エナジードリンク 250ml×24本
翼を授けよう!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド
Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
目次
gz形式で圧縮/解凍したい
ファイルの圧縮/解凍についてはzip形式が主流となっていると思いますが、たまにgz形式やtar形式で取り扱いたいケースも出てくると思います。
今回はコマンドから簡単にgz形式への圧縮及び解凍を行う手順をご紹介しようと思います♪
そもそもzip,gz,tarの違いとは?
圧縮担当かアーカイブ担当かの違い
そもそもzipやgz,tarとはなんなんでしょう?
実は、それぞれの役割が全然違うのです。
gz形式とは?
まず、gzとはGNU zipの略で、ファイルを圧縮するためのアルゴリズムとなります。
主に対象のファイルサイズを小さくまとめてくれるのが得意技です。
ですが、アーカイブ(まとめる)機能は持ち合わせていません。
tar形式とは?
一方で、tarとはtape archivesの略で複数ファイルをまとめるための書庫管理コマンドとなります。
主にディレクトリや複数ファイルを一つにまとめるのが得意技です。
ですが、圧縮機能は持ち合わせていません。
zip形式とは?
そして、一般的なzipとはアーカイブ機能と圧縮機能を持ち合わせているフォーマットとなります。
主にWindowsで主流となっています。
gzとtarの合わせ技
では、zipを使わずにgzで圧縮した上でtarのようにアーカイブしたいよ!という要望はどのように実現すれば良いでしょうか?
tarでアーカイブしたものをgzで圧縮すれば良いだけです。(悟り)
その辺については後述でご紹介しているのでそちらをみてもらえればと思いますが、よくみるXXX.tar.gzというファイルはそういう手順でアーカイブ及び圧縮したファイルの事を指しています。
手順
gzip -cで圧縮
ファイルを圧縮するには、gzip -c {対象ファイル} > {出力ファイル}の形式でコマンドを実行する必要があります。
例として、以下のようなディレクトリ階層にて
|
1
2
3
|
.
└── hoge.txt
1 files
|
gzip -c ./hoge.txt > hoge.gzを実行すると以下のようになります。
|
1
2
3
4
|
.
├── hoge.gz
└── hoge.txt
1 files
|
確認
では、解凍をしてみましょう。
gzファイルの回答にはgunzipというコマンドを使います。
gunzip {gzファイルパス}と打ってみてください。
|
1
2
3
4
|
.
├── hoge
└── hoge.txt
1 files
|
すると、hoge.gzがhogeに代わり解凍されていると思います。
注意事項
元ファイルを残す際は解凍時に-kオプションを付ける
gunzipでgzファイルを指定すると、指定されたgzファイルがなくなってしまいます。
もう一度gzipコマンドすれば同じ物を生成出来ますが、念の為バックアップを取っておいたほうが良いでしょう。
また、-kオプションをつけることで元ファイルを残す事が出来るのでこちらをつけておいたほうが安全かもしれませんね。
ファイル名は元ファイルのものが残らない
gzipで圧縮すると、圧縮前のファイル名は消えてしまい、gzのファイル名がそのまま流用されます。
なので、gzファイルを生成する際にはファイル名を意識して作成するのが良いと思います。
ディレクトリをgzにしたい場合
単一ファイルをgz形式で圧縮したい場合は上記の流れで問題ありませんが、ディレクトリをgz形式で圧縮しようとすると、以下のようなエラーログが出力されてしまうので、代わりにtarコマンドを使う必要があります。
|
1 |
gzip: ./texts is a directory
|
以下のようなディレクトリがあった場合、
|
1
2
3
4
5
|
.
└── texts
├── hoge.txt
└── piyo.txt
1 directory
|
tar czf {出力ファイル名} {対象ディレクトリ}のコマンドで圧縮する事が可能です。
今回はtar czf hoge.tar.gz texts/を実行してみました。すると、
|
1
2
3
4
5
6
|
.
├── hoge.tar.gz
└── texts
├── hoge.txt
└── piyo.txt
1 directory
|
上記のようにhoge.tar.gzが生成されていることが分かります。
解凍
では実際に解凍してみましょう。
解凍はtar xzf {対象ファイル名}で行えます。
textsフォルダを削除してからtar xzf hoge.tar.gzを実行すると、
|
1
2
3
4
5
6
|
.
├── hoge.tar.gz
└── texts
├── hoge.txt
└── piyo.txt
1 directory
|
無事にtextsフォルダが生成されましたね♪
こちらはアーカイブ前のディレクトリ名がそのまま再現されました。
終わりに
以上のように、コマンドから簡単にファイルやディレクトリのgz形式やtar形式での圧縮/解凍をする事が出来ました。
gz形式はファイルバックアップ等でよく出てくる形式なので、お困りの方はぜひ試してみてください♪






