【 tar 】コマンド――アーカイブファイルを作成する/展開する:Linux基本コマンドTips(40)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「tar」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、アーカイブファイルを作成/展開するための「tar」コマンドを解説します。
tarコマンドとは?
「tar」は、複数のファイルを1つにまとめた“アーカイブファイル”を作成/展開するコマンドです。
アーカイブとは?
「アーカイブ(archive)」は「書庫」という意味で、プログラムのソースコードなど、複数の関連するファイル群をまとめて保管したり、配布したりする際に使用します。
細かいファイルが多数ある場合は、1つのファイルにまとめるだけでディスクスペースを節約できますが、さらにファイルを小さくしたい場合は「gzip」コマンドで圧縮するのが一般的です。現在、Linux環境で広く使われているtarコマンドの場合、標準でgzip形式による圧縮に対応しています。
Windowsなどでも広く使われているZIP形式は、ファイルの圧縮と複数のファイルをまとめるアーカイブを同時に行いますが、tarコマンドは“アーカイブだけ行う”のが基本です。古くは「ar」というコマンドもありましたが、テープデバイスに対応したtarコマンドが誕生しました。
tarコマンドの書式
tar -czvf アーカイブ.tgz 対象ファイル
(ファイルのアーカイブを作成しgzip形式で圧縮する)
tar -xzvf アーカイブ.tgz
(gzipで圧縮されたアーカイブを展開する)
※tarコマンドが「-z」オプション(圧縮オプション)に対応していない場合は、「-z」を使用せず、別途「gzip」コマンドや「bzip2」コマンドを使用する(本連載第39回参照)
tarコマンドの主なオプション
tarコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-c | --create | 新しいアーカイブを作成する |
-r | --append | アーカイブの最後にファイルを追加する |
-A | --catenate, --concatenate |
アーカイブにtarアーカイブを追加する |
-u | --update | アーカイブのファイルを更新する(アーカイブ内の同名ファイルより新しいものだけを追加する) |
-d | --diff, --compare |
アーカイブとファイルシステムを比較する |
--delete | アーカイブから削除する | |
-t | --list | アーカイブの内容の一覧を表示する |
-x | --extract,--get | アーカイブからファイルを抽出する |
短いオプション | 長いオプション | 意味 |
---|---|---|
-f アーカイブ | --file=アーカイブ | アーカイブファイル名を指定する |
-C ディレクトリ | --directory=ディレクトリ | カレントディレクトリを指定したディレクトリに変更してから実行する |
--recursion | ディレクトリを再帰的に処理する(デフォルト) | |
-h | --dereference | シンボリックリンクをたどる |
--hard-dereference | ハードリンクをたどる | |
-N 日付 | --newer=日付, --after-date=日付 |
指定した日付より新しいファイルだけを保存する(日付の代わりにファイルを指定することも可能。この場合、指定したファイルより新しいファイルだけが対象になる) |
-P | --absolute-names | ファイル名から先頭の「/」を取り除かない |
-p | --preserve-permissions | 所有者などのファイル属性を保持する(スーパーユーザーのデフォルト) |
-k | --keep-old-files | 既存のファイルを置き換えない |
--keep-newer-files | アーカイブより新しい場合は既存ファイルを置き換えない | |
--overwrite | 既存のファイルを上書きする | |
-U | --unlink-first | ファイルを上書きする前に削除する |
--recursive-unlink | ディレクトリを展開する際、いったん既存ディレクトリを空にする | |
--suffix=接尾辞 | バックアップの接尾辞を指定する(環境変数「SIMPLE_BACKUP_SUFFIX」より優先する。どちらも指定されていない場合は「~」を使用する) | |
--remove-files | アーカイブへ追加した後にファイルを削除する | |
-T ファイル | --files-from=ファイル | 対象とするファイル名を指定したファイルから読み込む |
--unquote | 「-T」で読み込んだファイル名の引用符を外す(デフォルト) | |
-X ファイル | --exclude-from=ファイル | 除外するファイル名をファイルから読み込む |
-z | --gzip | アーカイブをgzip形式で圧縮する、gzip形式で圧縮されたアーカイブを展開する(拡張子は「.tar.gz」または「.tgz」) |
-j | --bzip2 | アーカイブをbzip2形式で圧縮する、bzip2形式で圧縮されたアーカイブを展開する(拡張子は.tar.bz2) |
-Z | --compress, --uncompress |
アーカイブをcompress形式で圧縮する、compress形式で圧縮されたアーカイブを展開する(拡張子は「.tar.Z」) |
-W | --verify | アーカイブを書き出した後に検証する |
-v | --verbose | 処理したファイルを詳しく出力する |
アーカイブファイルを作成する
Copyright © ITmedia, Inc. All Rights Reserved.