【完全ガイド】Linuxのtarコマンド使い方まとめ|圧縮・解凍・オプション一覧

Linux

Linuxでファイル操作を行う際、複数のファイルをまとめたり、ディレクトリを圧縮したりする場面は頻繁にあります。

そんなとき強力な味方となるのがtarコマンドです。
サーバー管理やバックアップ、ログ保管など、Linux環境では欠かせないツールといえるでしょう。

この記事では、初心者の方でも理解できるよう基本的な使い方から解説し、中級・上級者向けの便利なテクニックまで幅広く紹介します。

スポンサーリンク

tarとは?基本概念と特徴

tar(tape archive)は、元々磁気テープ向けのバックアップツールとして開発されたコマンドです。

現在では、複数のファイルやディレクトリを1つのファイルにまとめるアーカイブツールとして広く使われています。

tarの特徴として、単独では圧縮機能を持たないという点があります。

実際の運用では、gzipbzip2などの圧縮ツールと組み合わせて使用するケースが多いです。

代表的なtar形式

形式拡張子特徴
標準tar.tar圧縮なし、単純にファイルをまとめるだけ
tar + gzip.tar.gz または .tgz圧縮率と処理速度のバランスが良い(一般的)
tar + bzip2.tar.bz2gzipより高圧縮だが処理は遅い
tar + xz.tar.xz最も高い圧縮率だが、処理時間も長い

基本的な使い方(作成・展開)

アーカイブを作成する(圧縮なし)

tar -cvf archive.tar folder/

このコマンドの各オプションの意味:

  • c: create(新しいアーカイブを作成)
  • v: verbose(処理中のファイル名を表示)
  • f: file(出力先ファイル名を指定)

アーカイブを展開(解凍)する

tar -xvf archive.tar

このコマンドの各オプションの意味:

  • x: extract(アーカイブを展開)
  • v: verbose(処理中のファイル名を表示)
  • f: file(入力ファイル名を指定)

圧縮形式別の使い方

gzip形式(.tar.gz, .tgz)

最も一般的な圧縮形式です。圧縮率と速度のバランスが良好です。

圧縮する:

tar -czvf archive.tar.gz folder/

展開する:

tar -xzvf archive.tar.gz

bzip2形式(.tar.bz2)

gzipより高い圧縮率を持ちますが、処理時間は長くなります。

圧縮する:

tar -cjvf archive.tar.bz2 folder/

展開する:

tar -xjvf archive.tar.bz2

xz形式(.tar.xz)

最も高い圧縮率を持ちますが、処理には最も時間がかかります。

圧縮する:

tar -cJvf archive.tar.xz folder/

展開する:

tar -xJvf archive.tar.xz

よく使うオプション一覧

オプション説明使用例
-cアーカイブを新規作成tar -cf archive.tar files/
-xアーカイブを展開tar -xf archive.tar
-v処理中のファイル名を表示tar -cvf archive.tar folder/
-fファイル名を指定tar -cf archive.tar files/
-zgzip形式で圧縮/展開tar -czf archive.tar.gz files/
-jbzip2形式で圧縮/展開tar -cjf archive.tar.bz2 files/
-Jxz形式で圧縮/展開tar -cJf archive.tar.xz files/
-C展開先ディレクトリを指定tar -xf archive.tar -C /tmp/
-tアーカイブ内容の一覧表示tar -tf archive.tar
-rアーカイブにファイルを追加tar -rf archive.tar newfile
-u新しいファイルのみ追加tar -uf archive.tar newfile

ファイルを除外して圧縮する方法

バックアップやデプロイ時に、不要なファイルを除外したい場合があります。

--excludeオプションを使うと、特定のパターンに一致するファイルを除外できます。

特定のファイルタイプを除外

tar --exclude='*.log' -czvf archive.tar.gz folder/

複数のパターンを除外

tar --exclude='*.log' --exclude='tmp/' --exclude='.git/' -czvf archive.tar.gz folder/

除外リストファイルを使用

複数の除外パターンがある場合は、ファイルにリストアップして指定する方法も便利です:

tar -X exclude-list.txt -czvf archive.tar.gz folder/

exclude-list.txtの内容例:

*.log
tmp/
.git/
node_modules/

よくあるトラブルと対処法

問題:ファイルが正しく展開されない

対処法: 適切な圧縮形式のオプションを使用しているか確認しましょう。

  • .tar.gzファイルなら-zオプション
  • .tar.bz2ファイルなら-jオプション
  • .tar.xzファイルなら-Jオプション

問題:展開時にファイルが現在のディレクトリに散らかる

対処法: -Cオプションで展開先を指定します。

tar -xzvf archive.tar.gz -C /path/to/extract/

問題:パーミッションが保持されない

対処法: --same-permissionsまたは-pオプションを使用します。

tar -xvf archive.tar --same-permissions

問題:特定のファイルだけ展開したい

対処法: 展開したいファイルのパスを指定します。

tar -xvf archive.tar path/to/specific/file

まとめ

操作コマンド例
標準tar作成tar -cvf archive.tar folder/
gzip圧縮tar -czvf archive.tar.gz folder/
bzip2圧縮tar -cjvf archive.tar.bz2 folder/
xz圧縮tar -cJvf archive.tar.xz folder/
展開tar -xvf archive.tar
gzip展開tar -xzvf archive.tar.gz
除外して圧縮tar --exclude='*.log' -czvf archive.tar.gz folder/
特定の場所に展開tar -xvf archive.tar -C /tmp/
内容確認tar -tvf archive.tar

コメント

タイトルとURLをコピーしました