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

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

tartape 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.tararchive1.tarに連結するには、次のコマンドを入力します:

tar -Af archive1.tar archive2.tar

このコマンドでは、-Aオプションを使用してtarファイルをアーカイブに追加します。複数のアーカイブを連結する場合は、単純にそれらを列挙します:

tar -Af archive1.tar archive2.tar archive3.tar

このコマンドを実行すると、tararchive2.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オプションを付けます。次の例では、file1file2archive_name.tar.gzに圧縮します:tar -cvzf archive_name.tar.gz file1 file2

-z、-j、-Jオプションの違いは何ですか?

-zオプションはgzipで、-jオプションはbzip2で、-Jオプションはxzでアーカイブを圧縮します。それぞれ圧縮率や速度が異なり、gzipは最も高速で、xzは最も高い圧縮率を実現します。

Author
著者

Yukako Washisaka

こんにちは、Yukaです。バイリンガルの翻訳者として15年以上活動しています。アメリカではグラフィックデザインを学び、そこから翻訳の道に進みました。言葉を通じて文化と人をつなぐことにやりがいを感じていて、「伝わる」翻訳を大切にしています。 プライベートでは、家族とドライブに出かけたり、美しい景色を写真に収めたり、愛犬のトイプードルとのんびりお散歩するのが好きです。 このプロジェクトに関われることをうれしく思っています。私の翻訳が少しでもお役に立てれば光栄です。