お兄ちゃん!
ZIP を扱うことがあるんだけど
Linux でも似たようなものは
あるのかな?
もちろんあるよ!
今回は「アーカイブ(archive)」
について学ぼう!
アーカイブ?
圧縮と何が違うんだろう?
ZIP は複数のファイルを
まとめて1つにして
それを圧縮する仕組みだよね
うん!
1ファイルになって
ファイルサイズも小さくなるから
メール添付とかでよく使うよ!
でも Linux では
「複数のファイルを1つにまとめる」と
「圧縮する」を別々の機能と考えるんだ
機能 | 役割 |
---|---|
アーカイブ | 複数のファイルやディレクトリを1つのファイルにまとめること |
圧縮 | ファイルサイズを小さくすること |
なるほど!
ZIP は1つの作業に見えるけど
Linux では2つの作業として
分けているんだね
今回は Linux で標準的なアーカイブ
「tar アーカイブ」を扱っていこう!
tar
は
tar [オプション]... [ファイル]...
オプション | 役割 |
---|---|
c | アーカイブを作成する(create) |
f | 作成するアーカイブを指定する(file) |
以下の例を実行してみよう!
tar cf my-directory.tar my-directory
これは
my-directory
ディレクトリをmy-directory.tar
アーカイブにまとめているんだねそうだよただしこの時点ではファイルサイズは変わっていないよアーカイブは「まとめる」だけだからね
じゃあ圧縮はどうするのかな?
圧縮は
tar
にオプションを追加するよオプション | 圧縮形式 | 拡張子 | 特徴 |
---|---|---|---|
z | GZIP | .gz | そこそこの圧縮率で処理速度が速い |
j | BZIP2 | .bz2 | 圧縮率と処理速度のバランスが良い |
J | XZ | .xz | 高圧縮率だが処理速度はやや遅い |
これらの圧縮オプションを使った例を見てみよう
圧縮形式 | コマンド |
---|---|
GZIP | tar cfz my-directory.tar.gz my-directory |
BZIP2 | tar cfj my-directory.tar.bz2 my-directory |
XZ | tar cfJ my-directory.tar.xz my-directory |
拡張子が
.tar
と .gz
が合わさって.tar.gz
のようになっているねこのような拡張子を二重拡張子というんだ「tar アーカイブ」は 二重拡張子が一般的だよ
二重拡張子って付けたことがないなぁちょっと新鮮で面白いね!
アーカイブの展開には以下のオプションを指定するよ
オプション | 役割 |
---|---|
x | アーカイブを展開する(extract) |
f | 展開するアーカイブを指定する(file) |
tar xf my-directory.tar.gz
圧縮オプションは付けなくてもいいのかな?
拡張子から圧縮形式を自動で判別してくれるんだだから圧縮オプションは指定しなくても問題ないよ
拡張子を見て自動で判断してくれるなんて親切だね!
こうやって 「ターボール(tarball)」と言うんだ
tar
でアーカイブし圧縮したファイルを良く扱うから通称がついているんだ!
Linux のソフトウェアやソースコードはtarball 形式で配布されることが多いんだ
通常の圧縮や展開の用途だけでなくLinux を扱う上で大切なスキルなんだね!
今回はアーカイブについて学んだよ!
tar
で作成や展開を行うんだ!Windows や macOS にも tarball を解凍できるソフトウェアがあるのでLinux から他の OS へファイルを送るのにも使えるよ!