連載
» 2016年08月18日 05時00分 UPDATE

Linux基本コマンドTips(41):【 tar 】コマンド(応用編)――アーカイブファイルの内容を確認する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「tar」コマンドの応用編です。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、アーカイブファイルを作成/展開するための「tar」コマンドの応用編を解説します。

tarコマンドとは?

 「tar」は、複数のファイルを1つにまとめた“アーカイブファイル”を作成/展開するコマンドです。


tarコマンドの書式

tar -czvf アーカイブ.tgz 対象ファイル

(ファイルのアーカイブを作成して、gzip形式で圧縮する)

tar -xzvf アーカイブ.tgz

(gzip形式で圧縮されたアーカイブを展開する)

tar -tf アーカイブファイル

(アーカイブファイルの内容を確認する)

※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 処理したファイルを詳しく出力する


アーカイブファイルの内容を確認する

 アーカイブに含まれているファイルの内容を知りたい場合は、「-t」オプションを使います。「tar -tf アーカイブファイル名」でファイルのリストが表示されます。さらに、詳細を表示する「-v」オプションを追加して「tar -tvf アーカイブファイル名」とするとタイムスタンプやファイルサイズなど含めた内容が表示されます(画面1)。

コマンド実行例

tar -tf data0809.tgz

(アーカイブファイル「data0809.tgz」の内容を表示する)

tar -tvf data0809.tgz

(アーカイブファイル「data0809.tgz」の内容を詳細も含めて表示する)


画面1 画面1 「-t」オプションを付けて実行するとアーカイブの内容が表示され(赤枠部分)、さらに「-v」オプションを付けると詳細な内容が表示される(青枠部分)


ファイルを選んで取り出す

 アーカイブファイルから実行ファイルだけを取り出したい、または、ドキュメントだけを取り出したいなど、ファイルを指定して取り出したい場合は「-x」オプションを使用して「tar -xvzf アーカイブ.tgz」として、後ろに取り出したいファイル名を指定します。

 例えば、先ほどの「data0809.tgz」から「list*.txt」を取り出す場合は、次のように指定します(画面2)。

コマンド実行例

tar -xvzf data0809.tgz "list*.txt"

(「data0809.tgz」から「list*.txt」を取り出す)


画面2 画面2 アーカイブ名の後にアーカイブファイルから取り出したいファイルを指定できる


圧縮形式を確認する/変更する

 gzip形式で圧縮されたアーカイブファイルは、拡張子に「tar.gz」または「tgz」、bzip2形式の場合は「tar.bz2」を使う習慣になっていますが、「file」コマンドで圧縮形式を確認することもできます。

 gzip形式で圧縮されたアーカイブファイルをgzipではなく、bzip2で再圧縮する場合は、いったん「gunzip」コマンドで伸張し(圧縮を元に戻す)、「bzip2」コマンドで圧縮します。これで、tarコマンドで「-j」オプションでアーカイブを作成したのと同等の結果になります(「-j」は、アーカイブをbzip2形式で圧縮したり、bzip2形式で圧縮されたアーカイブを展開したりするオプション)。

コマンド実行例

file data0809.tgz

(ファイルの形式を調べる)

gunzip data0809.tgz

(gzipで圧縮されているアーカイブを伸張する。「data0809.tgz」が「data0809.tar」になる)

bzip2 data0809.tar

(圧縮されていないアーカイブをbzip2形式で圧縮する。「data0809.tar」が「data0809.tar.bz2」になる)


 以下の画面3では、「ls -l」とfileコマンドでファイルを確認し、gunzipコマンドで展開、あらためて「ls -l」とfileコマンドで確認後、bzip2コマンドで再圧縮して、再度「ls -l」とfileコマンドで確認しています。

画面3 画面3 gunzipコマンド/bzip2コマンドを使えば、tarファイルを伸張/再圧縮できる


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。