Linuxのtarコマンドでアーカイブを展開(解凍)する方法を徹底解説!初心者ガイド
生徒
「先輩から『このtarファイルを解凍しておいて』と言われたのですが、ダブルクリックしても何も起きません。どうすればいいですか?」
先生
「Linuxの世界では、Windowsのようにマウスで操作するのではなく、tarというコマンドを使ってファイルを展開するのが一般的なんですよ。」
生徒
「コマンドって、あの黒い画面に文字を打ち込むやつですよね。難しそうで不安です…。」
先生
「実は決まった呪文を覚えるだけなので、パズルみたいで楽しいですよ。一つずつ丁寧に説明しますね。」
1. アーカイブと圧縮の違いを知ろう
Linuxを触り始めると必ず出てくるのが「アーカイブ」と「圧縮」という言葉です。まずはこの違いを整理しましょう。
アーカイブとは、複数のファイルを一つの箱にまとめる作業のことです。引越しを想像してみてください。たくさんの食器や服をそのまま運ぶのは大変ですが、一つの段ボール箱に詰めれば運びやすくなりますよね。この「段ボールに詰める作業」がアーカイブです。Linuxでは、この箱のことを「アーカイブファイル」と呼び、拡張子は.tarになります。
一方で圧縮とは、ファイルの中身をギュッと小さくして、データの容量を減らすことです。布団圧縮袋のようなイメージです。Linuxでは、アーカイブした段ボール箱をさらに圧縮して、より持ち運びやすくすることがよくあります。圧縮されたファイルには、.gzや.bz2といった拡張子が付きます。
今回解説するtarコマンドは、この「段ボール箱に詰める」「段ボール箱から中身を取り出す」という作業に加えて、同時に「圧縮」や「解凍」も行える非常に便利な道具なのです。
2. tarコマンドでアーカイブを展開する基本
それでは、実際にアーカイブファイル(段ボール箱)から中身を取り出す方法を見ていきましょう。この作業を「展開(てんかい)」と呼びます。初心者の方は「解凍」と言ったほうが馴染みがあるかもしれませんね。
一番よく使う、魔法の呪文のような基本の形がこちらです。
tar -xvf archive.tar
このコマンドを入力すると、archive.tarという箱の中に入っていたファイルが、今あなたがいる場所にバラバラと出てきます。ここで使っている-xvfという部分は、tarコマンドに「何をさせるか」を決めるオプションと呼ばれるものです。
それぞれのアルファベットには意味があります。
- x (extract):抽出する(中身を取り出す)という意味です。
- v (verbose):詳細を表示するという意味です。作業中にどのファイルを取り出したか画面に表示してくれます。
- f (file):ファイル名を指定するという意味です。この直後にファイル名を書く決まりになっています。
3. 圧縮されたファイル(.tar.gz)を解凍する方法
インターネットからソフトをダウンロードしたり、仕事でファイルをやり取りしたりするとき、一番よく見かけるのが.tar.gzという拡張子のファイルです。これは、tarで一つにまとめた後に「gzip(ジー・ジップ)」という方式で圧縮されたファイルです。
これを解凍・展開するには、先ほどの呪文に「z」を付け加えるだけです。
tar -xzvf backup.tar.gz
backup/
backup/photo.jpg
backup/document.pdf
追加したzは「gzip形式の圧縮を解凍してね」という合図です。実行すると、画面に中身のファイル名がズラズラと表示され、最後に元のフォルダが姿を現します。最近の新しいバージョンのLinuxでは、実は「z」を付けなくても自動で判断してくれますが、基本として覚えておくとどんな環境でも困りません。
4. 特定の場所にファイルを展開する方法
普通にコマンドを実行すると、今作業している場所に中身が展開されます。しかし、「特定のフォルダ(ディレクトリ)の中に中身を移したい」という時もありますよね。そんな時に便利なのが-C(大文字のシー)オプションです。
例えば、work.tar.gzの中身を、すでに作ってあるprojectというフォルダの中に直接入れたい場合は次のように書きます。
tar -xzvf work.tar.gz -C ./project
ここで使った-Cは「Change directory(ディレクトリを移動する)」の略です。「展開する前に、指定した場所へ移動してから作業してね」と指示を出しているわけです。これを使えば、作業場所がファイルで散らかるのを防ぐことができます。
5. 展開する前に中身だけを確認する方法
「この大きなアーカイブファイル、中身に何が入っているんだろう?」「解凍したら変な場所にファイルが散らばらないかな?」と不安になることがあります。そんな時は、実際に展開せずに中身のリストだけを見ることができます。
使うオプションは-tです。-x(展開)の代わりに-t(一覧表示)を使います。
tar -tvf data.tar.gz
-rw-r--r-- user/group 1024 2025-01-01 10:00 file1.txt
-rw-r--r-- user/group 2048 2025-01-01 10:00 file2.txt
このコマンドを実行しても、ファイルは作成されません。あくまで「中身はこんな感じですよ」というプレビューを表示してくれるだけなので、安心して確認できます。大きなファイルを扱う前には、必ずこのコマンドで構造を確認する癖をつけておくと、ミスが減ってプロっぽくなりますよ。
6. 権限が必要な場所で展開する場合(rootユーザー)
Linuxには、システムの大事な設定ファイルなどが置いてある「一般人は勝手に触れない場所」があります。そういった場所にファイルを展開しようとすると、「Permission denied(権限がありません)」と怒られてしまいます。
そんな時は、一時的に管理者(ルートユーザー)の力を借りるsudoコマンドを組み合わせて使いましょう。実行するとパスワードを求められますが、入力しても画面には何も表示されない(セキュリティのため)ので、そのまま打ち込んでエンターキーを押してください。
sudo tar -xzvf system_files.tar.gz -C /opt/
Password:
system_files/config.conf
このように、システムの深い場所にファイルを配置する際には、管理者権限が必要になることを覚えておきましょう。
7. bzip2形式やxz形式の解凍方法
時々、.tar.bz2や.tar.xzという見慣れない拡張子に出会うことがあります。これらは、先ほどのgzipよりも「さらに強力に圧縮された」ファイルたちです。ファイルサイズを極限まで小さくしたい時に使われます。
これらもtarコマンド一つで対応可能です。それぞれの呪文は以下の通りです。
- .tar.bz2の場合:
-jオプションを使います。tar -xjvf sample.tar.bz2 - .tar.xzの場合:
-J(大文字のジェイ)オプションを使います。tar -xJvf heavy_data.tar.xz
最近のLinuxでは、tar -xvfとだけ打てば、後ろが.gzだろうが.bz2だろうが.xzだろうが、コンピュータが勝手に判断して適切に処理してくれることがほとんどです。でも、「昔のコンピュータを触る時」や「試験を受ける時」には、このオプションの使い分けが重要になります。
8. よくあるトラブルと解決策
初心者がtarコマンドを使っていて「あれ?」となりやすいポイントがいくつかあります。まず一つ目は、ファイル名の間違いです。Linuxでは大文字と小文字を厳しく区別します。Archive.tarとarchive.tarは別物として扱われるので、一文字ずつ正確に入力しましょう。キーボードの「Tab」キーを押すとファイル名を自動で補完してくれる便利な機能があるので、ぜひ活用してください。
二つ目は、「展開したファイルがどこに行ったかわからない」という現象です。これは-Cオプションを使わずに実行した場合に、今自分がいる場所(カレントディレクトリ)に展開されたことが原因です。自分が今どこにいるかを知るには、pwdというコマンドを使ってみてください。自分の現在地を確認してから展開作業を始めるのが、迷子にならないコツです。
三つ目は、「圧縮形式が違う」というエラーです。例えばgzip形式なのにbzip2のオプションを使おうとするとエラーが出ます。もしエラーが出たら、一度オプションを-xvfだけにして、自動判別に任せてみるのが一番の近道です。
9. アーカイブを作成する方法(おまけ)
今回は「展開(解凍)」がメインですが、自分でファイルを作りたくなった時のために「作成」の方法も少しだけ触れておきます。展開が-x(extract)だったのに対し、作成は-c (create)を使います。
tar -czvf my_backup.tar.gz ./my_folder
./my_folder/
./my_folder/memo.txt
このように、「新しく作るファイル名」を先に書き、その後に「まとめたいフォルダやファイル」を書きます。これで、あなたも自由にファイルをまとめたり、解凍したりできるようになりました。Linuxの操作において、tarコマンドは避けて通れない非常に重要なツールです。何度も練習して、自然に指が動くように慣れていきましょう!