Linuxでファイルをアーカイブ・圧縮するためのtarコマンドの使い方

tarはtape archiveの略で、ファイルをアーカイブおよび圧縮するために広く使用されているLinuxのコマンドラインユーティリティです。もともとはテープドライブへのデータのバックアップを目的として開発されましたが、現在では多用途に対応するよう大きく進化しています。
現在では、主な用途は複数のファイルやディレクトリを1つのアーカイブファイルにまとめ、保存や転送を簡素化することです。さらに、Linuxのtarコマンドはこれらのアーカイブを圧縮してディスク容量を節約することもできます。
この記事では、このコマンドの構文、オプション、実用的な使用例について解説します。本ガイドを読み終える頃には、Linuxシステムでtarを効果的に使用できるようになり、データ管理作業をより効率的かつ整理されたものにできるでしょう。
tarコマンドの構文
tarコマンドの基本構造は次のとおりです:
tar [options] [archive-file] [file or directory to be archived]
各要素の詳細は以下のとおりです:
- [オプション]: コマンドの動作を変更するフラグで、アーカイブの作成・展開・内容の一覧表示などの操作を指定します。その他の一般的なオプションには、圧縮や、処理中のファイルを表示する冗長出力(verbose)があります。
- [アーカイブファイル名]: 指定したファイルやディレクトリを格納する、生成されるアーカイブファイルの名前です。使用する圧縮形式に応じて、拡張子は.tar、.tar.gz、.tar.bz2などになります。
- [アーカイブ対象のファイルまたはディレクトリ]: アーカイブに含めるファイルやディレクトリです。複数のファイル名やディレクトリを指定でき、1つのアーカイブファイルにまとめられます。
以下に、これらの構成要素がどのように連携して動作するかを示すtarコマンドの構文例を紹介します:
tar -cvf archive_name.tar /path/to/directory_or_file
-cvfは使用するオプションで、archive_name.tarがアーカイブファイル名、/path/to/directory_or_fileがアーカイブ対象のファイルやディレクトリを指定します。
関連記事
Linux初心者の方へ。よく使われる Linuxコマンドを学んで、コマンドライン操作のスキルを高め、作業を効率化しましょう。
よく使用されるオプション
さまざまな操作を行うために使用される、代表的なtarオプションをいくつかご紹介します:
- 作成(-c):新しいアーカイブを作成します。
- 展開(-x):アーカイブからファイルを展開します。
- 詳細表示(-v):処理の詳細な出力を表示します。
- ファイル指定(-f):アーカイブファイルを指定します。
- Gzipで圧縮(-z):アーカイブをgzipで圧縮し、拡張子が.tar.gzのファイルを作成します。
- bzip2で圧縮(-j):アーカイブをbzip2で圧縮し、拡張子が.tar.bz2のファイルを作成します。
- xzで圧縮(-J):アーカイブをxzで圧縮し、拡張子が.tar.xzのファイルを作成します。
複数のオプションを1つのコマンドに組み合わせて、より複雑な操作を行うことも可能です。例えば、gzipで圧縮したアーカイブを作成し、処理の詳細な出力を表示する場合は、次のように実行します:
tar -czvf archive_name.tar.gz /path/to/directory_or_file
tarコマンドの使用例
この多機能なツールを理解するために、tarコマンドの実用的な使用例をいくつかご紹介します。ただし、作業を始める前に、Linuxベースのデバイスを準備してください。お持ちでない場合は、HostingerからLinux VPSを購入して、正しく動作させることができます。

アーカイブの作成
tarアーカイブを作成すると、複数のファイルやディレクトリを1つのアーカイブファイルにまとめることができます。以下は、file1.txt、file2.txt、directory1を含むexample.tarというアーカイブを作成する例です。
tar -cvf example.tar file1.txt file2.txt directory1
次のような出力が表示されます:
file1.txt
file2.txt
directory1/
directory1/file_in_directory.txt
一方、bzip2で圧縮したexample.tar.bz2というアーカイブを作成するには、次のコマンドを使用します:
tar -cvjf example.tar.bz2 file1.txt file2.txt
my_directory内のすべてのファイルとサブディレクトリを含むアーカイブを作成し、すべての.logファイルを除外する場合には、次のコマンドを実行します:
tar -cvf example.tar --exclude='*.log' my_directory/
このコマンドでは、–exclude=’pattern(パターン)’を使用して、指定したパターンに一致するファイルをアーカイブから除外します。
アーカイブの展開
アーカイブを展開することで、1つのファイルにまとめられていたファイルやディレクトリを取り出すことができます。次のコマンドを実行すると、example.tarというtarファイルが現在のディレクトリに展開されます:
tar -xvf example.tar
次のように、展開されるすべてのファイルやディレクトリが一覧表示されます:
image1.jpg
image2.jpg
directory1.jpg
directory1/image_in_directory.jpg
example.tarの内容をdestination_directoryという別のディレクトリに展開するには、次のコマンドを入力します:
tar -C destination_directory/ -xvf example.tar
このコマンドでは、-Cオプションを使用して、ファイルを展開する前に指定したディレクトリに移動します。
既存のアーカイブにファイルを追加
新しいアーカイブを作成せずに、既存のアーカイブファイルにファイルを追加することも可能です。次のコマンドを使用すると、file3.txt、file4.txt、directory2をがexample.tarアーカイブに追加されます:
tar -rvf example.tar file3.txt file4.txt directory2
このコマンドでは、-rオプションを使用してファイルやディレクトリをアーカイブの末尾に追加します。
実行すると、以下のアーカイブに追加されるファイルが表示されます:
file3.txt
file4.txt
directory2/
directory2/file_in_directory2.txt
アーカイブの内容を一覧表示
アーカイブ内にどのファイルやディレクトリが格納されているかを確認するには、内容の一覧表示を行います。そのためには、次の例のように-tオプションを使用します:
tar -tvf example.tar
次のような出力が表示されます:
-rw-r--r-- user/group 12345 2025-01-04 12:34 file1.txt
-rw-r--r-- user/group 67890 2025-01-04 12:34 file2.txt
drwxr-xr-x user/group 4096 2025-01-04 12:34 directory1/
-rw-r--r-- user/group 13579 2025-01-04 12:34 directory1/file_in_directory.txt
圧縮されたアーカイブの内容を一覧表示する場合は、追加のオプションを使用する必要があります。例えば、gzipで圧縮されたアーカイブには-zオプション、bzip2で圧縮されたアーカイブには-jオプションを付け加えます。
tar -tvzf example.tar.gz
tar -tvjf example.tar.bz2
アーカイブから特定のファイルを抽出
tarを使用すると、アーカイブ全体を展開せずに、特定のファイルだけを抽出することもできます。例えば、example.tarからfile1.txtというファイルを抽出するには、次のようにします:
tar -xvf example.tar file1.txt
アーカイブから複数のファイルを抽出したい場合は、次のようにコマンド内でファイル名を列挙します:
tar -xvf example.tar file1.txt file2.txt image1.jpg
アーカイブの更新
-uオプションを使用すると、既存のtarアーカイブに対して、より新しいバージョンのファイルを追加して内容を更新できます。
ただし、更新を正しく行うには、ファイル名がアーカイブ内の古いファイルと同じである必要があります。異なる場合、tarはそれらを新しいファイルとして追加します。
以下は実行できるコマンド例です:
tar -uvf example.tar file1.txt file2.txt
アーカイブの連結
アーカイブを連結すると、複数のtarアーカイブを1つのアーカイブにまとめることができます。バックアップの統合したり、ファイルを整理する際に便利です。最初に指定したアーカイブ名が、統合後のメインのアーカイブファイルになります。
archive2.tarをarchive1.tarに連結するには、次のコマンドを入力します:
tar -Af archive1.tar archive2.tar
このコマンドでは、-Aオプションを使用してtarファイルをアーカイブに追加します。複数のアーカイブを連結する場合は、単純にそれらを列挙します:
tar -Af archive1.tar archive2.tar archive3.tar
このコマンドを実行すると、tarはarchive2.tarおよびarchive3.tarの内容をarchive1.tarに追加します。
注意点として、.tarと.tar.gzのように異なる形式のアーカイブを、tarコマンドで直接連結することはできません。
アーカイブからメンバーを削除
最後に、tarコマンドを使用して、アーカイブ全体を作り直すことなく、特定のファイルやディレクトリを削除することもできます。以下は、example.tarからfile1.txtというファイルを削除する例です。
tar --delete -f example.tar file1.txt
上記のコマンドでは、–deleteを使用して指定したファイルをアーカイブから削除します。
アーカイブからdir1というディレクトリとその中身をすべて削除するには、次のコマンドを実行します:
tar --delete -f example.tar dir1/
–deleteオプションは、一部の古いバージョンのtarやBSD系システムでは利用できない場合があります。その場合は、アーカイブを一度展開し、不要なファイルを削除してから、新しいアーカイブを作成する必要があります。
まとめ
この記事では、アーカイブファイルの作成、展開、削除など、さまざまなファイル操作に tarコマンドを使用する方法をご紹介しました。また、gzipやbzip2など、さまざまな形式でフォルダーを圧縮する際にも、このコマンドを活用できます。
tarコマンドを使いこなすことは、バックアップやシステム管理において非常に重要です。
ファイル管理の効率を高め、作業をスムーズにし、Linux環境での整理・運用を最適化します。
tarコマンドに関するよくある質問
このセクションでは、tarコマンドに関するよくある質問にお答えします。
Linuxでtarコマンドは何に使いますか?
Linuxのtarコマンドは、アーカイブファイルを作成・管理・変更・展開するために使用されます。複数のファイルを1つのアーカイブにまとめることで、配布やバックアップが簡素化され、さまざまな圧縮形式にも対応しています。
gzip圧縮アーカイブを作成するにはどうすればよいですか?
gzipで圧縮されたアーカイブを作成するには、tarコマンドに-cvzfオプションを付けます。次の例では、file1とfile2をarchive_name.tar.gzに圧縮します:tar -cvzf archive_name.tar.gz file1 file2
-z、-j、-Jオプションの違いは何ですか?
-zオプションはgzipで、-jオプションはbzip2で、-Jオプションはxzでアーカイブを圧縮します。それぞれ圧縮率や速度が異なり、gzipは最も高速で、xzは最も高い圧縮率を実現します。