ねこじゃすり
猫を魅了する魔法の装備品!
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
サンディスク 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
形式はファイルバックアップ等でよく出てくる形式なので、お困りの方はぜひ試してみてください♪