技術は記憶の彼方へと

覚えたつもりですぐに忘れるエンジニアの備忘録

【Linux】tarアーカイバ

今回は、Linuxアーカイブ化やgzip圧縮を実行する際に使うtarアーカイバについて。
私が知らないうちに、Windowsでも標準搭載される様になっていたのですね。   職場でWindows PCを使っていても、WSLを使ったりしていて全然気付いていませんでした。  

目次


アーカイブ化と圧縮


アーカイブと圧縮、同じに見られていることが多いですが実際には別物です。   多くの場合、Zipのようにアーカイブと圧縮はセットで行われるため混同されやすいのだと思います。   実際にはアーカイブ化はただ複数のファイルを一つにまとめるだけであり、ファイルサイズを小さくする様な効果はありません。   圧縮は、名前の通りで一つまたは複数のファイルのファイルサイズをより小さくしたものになります。  

アーカイブ


すぐに使うことがなかったり、長期間保存する際に複数の場所にあっては管理の面でも面倒大変な為に実施したりします。
ファイルをアーカイブ化するには、以下のコマンドを使用します。  

tar cf <アーカイブファイル名> <アーカイブファイルパス>

オプションのcは新規アーカイブの作成、fはアーカイブ変数に対して読み込み又は書き込み対象のアーカイブを指定します。
アーカイブ化されている内容を確認するには、以下のコマンドを使用します。  

tar tf <アーカイブ名>

オプションのtはアーカイブに現れる順にファイルをリストにすることを表しています。  

アーカイブの展開


アーカイブ化したファイルを展開するには以下のコマンドを使用します。  

tar xf <アーカイブ名>

オプションのxがアーカイブからの取り出しを意味しています。  

gzip圧縮


gzipによる圧縮はおそらくLinuxで最も主流な圧縮方法であると思います。
gzipによる圧縮が行われたファイルには、慣習的に.gzの拡張子がつけられます。   gzip単体でも圧縮を行うことができますが、ここではtarコマンドと組み合わせての圧縮方法で紹介します。  

tar zcvf <圧縮アーカイブ名> <圧縮アーカイブファイルパス>

オプションのzがgzipを使用することの宣言となります。

gzip解凍


tar アーカイブgzip圧縮されたファイルは以下のコマンドで解凍が可能です。

tar zxvf <圧縮アーカイブ名>


最後に

今回は、なんかちょくちょく使う割に、使うたびに調べているtarコマンドについて記載しました。   圧縮に関しては、gzipが主流であると思って記載していますが、圧縮率を優先するのであれば、bzip2も検討することはあるかと思います。
サイトによっては、tarが圧縮するコマンドって紹介しているサイトもあったりする様ですがそこでは大体gzipを使ってtarアーカイブを圧縮する...今回紹介しているtarとgzipを組み合わせて圧縮アーカイブを作る方法が紹介されている様でした。
圧縮とアーカイブ化違う要素でありながら同一視されてしまっていることが多いですよね。
実際、Windowsだと標準でZipアーカイバアーカイブ化と圧縮を同時にできますもんね... PowerShellのCompress-Archiveが説明ではアーカイブ作りますみたいな説明されてますが、実質コマンドラインからZIP圧縮を行なっているだけっていう状態でしたし、アーカイブだけって需要無かったりするんでしょうか...
Windowsでもtar使える様になってて最大2GBの容量制限のあるZIP使わなくてもよくなったとかちょっと歓喜しながら、今回はこの辺で。