[.tar.gz][.tgz]のファイルを展開する方法。
何かサーバープログラムをインストールしようとして、どこぞのサイトからファイルをダウンロードしてきたとします。
[.deb] で終わるファイル名なら aptコマンドでインストールすれば良いし、[.rpm]なら dnf(または yum)コマンドですが、たまに [.tar.gz] や [.tgz] となっているものに出会うと思います
これらは tarコマンド(an archiving utilit)で複数のファイルやディレクトリを 1つに纏めた上で gzip圧縮されたファイルです。
「複数のファイルやディレクトリを 1つに纏めた」って言うのは、Windowsなら [.zip]ファイルを思い出してもらえれば、アレと似たようなものと理解できると思います。
以下これらのファイルを解凍する手順です。
環境は Ubuntu Desktop 22.04 でやっていますが、Linuxなら皆同じでしょう。
[aaa] というディレクトリがあるとします。
subro@Ubuntu2204:~/work/tar$ ls -l
total 4
drwxrwxr-x 3 subro subro 4096 8月 15 11:26 aaa
中身はこの通り。
・[aaa.txt]ファイル
・[bbb]サブディレクトリ
・[bbb]サブディレクトリの中に [bbb.txt]ファイル
subro@Ubuntu2204:~/work/tar$ tree
aaa
├── aaa.txt
└── bbb
└── bbb.txt
[aaa]ディレクトリを tarコマンドで 圧縮しつつ1つのファイルに纏めます。
コマンドの使い方はこうです。
tar -c(まとめる) -z(gzip圧縮/解凍する) -v(作業内容を表示する) -f(まとめられたファイル名) まとめる対象
実際にやってみます。
オプションを表す「-」は 1つでOK。
subro@Ubuntu2204:~/work/tar$ tar -czvf aaa.tgz aaa
aaa/
aaa/bbb/
aaa/bbb/bbb.txt
aaa/aaa.txt
できました。
結果はこうです。
-fオプションで指定した [aaa.tgz]ファイルができています。
subro@Ubuntu2204:~/work/tar$ ls -l
total 8
drwxrwxr-x 3 subro subro 4096 8月 15 11:26 aaa
-rw-rw-r-- 1 subro subro 266 8月 15 11:37 aaa.tgz
[.tar.gz] や [.tgz] のファイルの中に何が入っているかの確認は、-c(まとめる) オプションの代わりに -t(一覧)オプションを使います。
これは解凍作業をする前に必ずやっておきましょう。
subro@Ubuntu2204:~/work/tar$ tar -tzvf aaa.tgz
drwxrwxr-x subro/subro 0 2022-08-15 11:26 aaa/
drwxrwxr-x subro/subro 0 2022-08-15 11:26 aaa/bbb/
-rw-rw-r-- subro/subro 6106 2022-08-15 11:26 aaa/bbb/bbb.txt
-rw-rw-r-- subro/subro 6651 2022-08-15 11:26 aaa/aaa.txt
返す返すも言いますが、中身の確認は必ずやりましょう。
予期しない場所に解凍されてしまうという重大事故を起こすことがよくあって、大事なことなので 2度言いました。
次は解凍をしますので、一旦 [aaa]ディレクトリは削除した状態でやります。
解凍には、-x(解凍)オプションを使います。
subro@Ubuntu2204:~/work/tar$ ls -l
total 4
-rw-rw-r-- 1 subro subro 266 8月 15 11:37 aaa.tgz
subro@Ubuntu2204:~/work/tar$ tar -xzvf aaa.tgz
aaa/
aaa/bbb/
aaa/bbb/bbb.txt
aaa/aaa.txt
subro@Ubuntu2204:~/work/tar$ ls -l
total 8
drwxrwxr-x 3 subro subro 4096 8月 15 11:26 aaa
-rw-rw-r-- 1 subro subro 266 8月 15 11:37 aaa.tgz
[aaa]ディレクトリができました。
[aaa]ディレクトリの中を見てみます。
subro@Ubuntu2204:~/work/tar$ ls -lR aaa
aaa:
total 12
-rw-rw-r-- 1 subro subro 6651 8月 15 11:26 aaa.txt
drwxrwxr-x 2 subro subro 4096 8月 15 11:26 bbb
aaa/bbb:
total 8
-rw-rw-r-- 1 subro subro 6106 8月 15 11:26 bbb.txt
以下の特徴があります。
・ファイル/ディレクトリのオーナー/グループは解凍したユーザーのものになる
・パーミッションは纏められた時のものになる
・タイムスタンプは纏められた時のものになる
==========
これだけのことなんですが、tarコマンドを使うのは常識になってしまっていて、どこのインストールチュートリアルでもこの手順は触れていないと思います。
ダウンロードファイルを見てから「これからどうすりゃいいの?」となってしまった人のために書きました。
ごきげんよう。
この本はリファレンスでありながら、通読してみると「おっ?あそこの作業ではこれを使えば良かったのか。」って思うことがあります。
持っててたまに読んでみると良い、隠れた名作です。