Jump to content 日本-日本語

製品  >  ソフトウェア  >  HP-UX   >  Knowledge-on-Demand  >  UNIXの教科書 応用編

UNIXの教科書 応用編
〜はじめよう! WindowsとLinuxからのステップアップ〜

第4日目:ファイルの圧縮とアーカイブ

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
第4日目:ファイルの圧縮とアーカイブ
UNIXの教科書 応用編〜はじめよう! WindowsとLinuxからのステップアップ〜 4日目
ファイルの圧縮と解凍
アーカイブの管理

2時間目:アーカイブの管理

2時間目では、複数のファイルをまとめて管理する「アーカイブ」(書庫)について説明しましょう。UNIXの世界でアーカイブ管理ツールの代表といえるのがtarコマンドです。tarは「Tape Archive」の略で、もともとはテープドライブにバックアップ用のアーカイブを作成するためのツールでしたが、最近ではディスク上のファイルとしてのアーカイブの作成に使用されることも増えています。

アーカイブの作成

tarコマンド使用にはいくつかのオプション指定のパターンがあります。基本的な状況に応じて説明しますので、できればそのまま覚えてしまいましょう。
まず、指定したディレクトリからアーカイブを作成するには次の書式を使用します。

tar -cvf アーカイブのパス ディレクトリのパス

tar形式のアーカイブの拡張子は一般的に「.tar」になります。たとえばDocumentsディレクトリのアーカイブを「Documents.tar」という名前で作成するには次のようにします。

$ tar -cvf  Documents.tar Documents/【Enter】
a Documents/2007/ok.txt 1 blocks
a Documents/2007/ng.txt 1 blocks
a Documents/2007/readme.txt 1 blocks
a Documents/2008/sep.txt 1 blocks
a Documents/2008/magic.txt 1 blocks
a Documents/2008/sample.txt 1 blocks
a Documents/2008/sample 1 blocks
a Documents/2008/9th.txt 1 blocks
a Documents/sample.txt 1 blocks
a Documents/mail.txt 10 blocks
a Documents/info.txt 25 blocks
a Documents/main.html 2 blocks

四色君:
「-cvf」オプションにはどのような意味があるのですか?
四色君
マリー先生
マリー先生:
「c」は作成(Create)、「v」は詳細メッセージを表示(Verbos)で、最後の「f」でアーカイブ・ファイルのパスを指定しているの。

タックス君:
compressコマンドやgzipコマンドのように、作成されたアーカイブ・ファイルに拡張子「.tar」は自動的に付かないのですか?
タックス君
マリー先生
マリー先生:
そうね、拡張子は自分で付けないとだめなの。拡張子のないアーカイブも作成できるけど、後で見てわかりにくいので、かならず付けるようにしてね。

アーカイブの中身を表示する

アーカイブの中にあるファイルの一覧を表示するには次の書式で実行します。

tar -tvf アーカイブのパス

たとえば、Documents.tarの中身を表示するには次のようにします。

$ tar -tvf  Documents.tar Documents/【Enter】
rwxr-x--- 111/20      0 Oct 21 16:56 2008 Documents/
rwxr-x--- 111/20      0 Oct 21 16:56 2008 Documents/2007/
rw-r----- 111/20     25 Aug 24 23:00 2008 Documents/2007/ok.txt
rw-r----- 111/20     25 Aug 24 23:00 2008 Documents/2007/ng.txt
rw-r----- 111/20     25 Aug 24 23:00 2008 Documents/2007/readme.txt
rwxr-x--- 111/20      0 Oct 21 16:56 2008 Documents/2008/
rw-r----- 111/20     25 Aug 24 23:00 2008 Documents/2008/sep.txt
rw-r----- 111/20     25 Aug 24 23:00 2008 Documents/2008/magic.txt
rw-r----- 111/20     25 Aug 24 23:02 2008 Documents/2008/sample.txt
rw-r----- 111/20     25 Aug 24 23:03 2008 Documents/2008/sample
rw-r----- 111/20     25 Aug 24 23:11 2008 Documents/2008/9th.txt
rw-r----- 111/20     25 Aug 24 22:59 2008 Documents/sample.txt
rwxr-x--- 111/20      0 Aug 24 23:03 2008 Documents/sample/
rw-r----- 111/20   5023 Oct 21 16:16 2008 Documents/mail.txt
rw-r----- 111/20  12526 Oct 21 16:15 2008 Documents/info.txt
rw-r----- 111/20    553 Oct 21 16:18 2008 Documents/main.html

アーカイブを展開する

カレントディレクトリにアーカイブの中身をすべて展開するには、次の書式で実行します。

tar -xvf  アーカイブのパス

たとえば、Documents.tarをカレントディレクトリに展開するには次の書式で実行します。

$ ls -l【Enter】
total 80
-rw-r-----   1 o2   users   40960 Oct 21 17:31 Documents.tar
$ tar -xvf Documents.tar【Enter】
x Documents/2007/ok.txt, 25 bytes, 1 tape blocks
x Documents/2007/ng.txt, 25 bytes, 1 tape blocks
x Documents/2007/readme.txt, 25 bytes, 1 tape blocks
x Documents/2008/sep.txt, 25 bytes, 1 tape blocks
x Documents/2008/magic.txt, 25 bytes, 1 tape blocks
x Documents/2008/sample.txt, 25 bytes, 1 tape blocks
x Documents/2008/sample, 25 bytes, 1 tape blocks
x Documents/2008/9th.txt, 25 bytes, 1 tape blocks
x Documents/sample.txt, 25 bytes, 1 tape blocks
x Documents/mail.txt, 5023 bytes, 10 tape blocks
x Documents/info.txt, 12526 bytes, 25 tape blocks
x Documents/main.html, 553 bytes, 2 tape blocks
$ ls -l【Enter】

タックス君:
アーカイブから指定したファイルだけを取り出すことはできますか?
タックス君
マリー先生
マリー先生:
「tar -xvf アーカイブのパス」の後の引数に、取り出すファイルパスを指定すればできるわよ。このとき取り出すファイルのパスはアーカイブ内のパスで指定することに注意してね。たとえば「Documents/sample.txt」を取り出すには次のようにするの。

$ tar -xvf Documents.tar Documents/sample.txt
x Documents/sample.txt, 25 bytes, 1 tape blocks【Enter】

圧縮アーカイブの作成

アーカイブはそれ自体では圧縮されていません。メールなどで受け渡す場合には、通常アーカイブをさらに圧縮コマンドを使用して圧縮したほうがよいでしょう。圧縮されたアーカイブのことを「圧縮アーカイブ」と言います。
たとえば、Documents.tarのgzip形式の圧縮アーカイブを作成するには次のようにします。gzip形式の圧縮アーカイブの拡張子は「.tar.gz」となることを覚えておきましょう。

$ gzip Documents.tar 
$ ls -l【Enter】

なお、アーカイブの作成と圧縮を一度に行うには、パイプを使用してtarコマンドとgzipコマンドを組み合わせます。たとえばBackupディレクトリの圧縮アーカイブ「Backup.tar.gz」を作成するには、次のようにします。

$ tar -cvf - Backup | gzip > Backup.tar.gz【Enter】
a Backup/ok.txt 1 blocks
a Backup/ng.txt 1 blocks
a Backup/2008/sep.txt 1 blocks
a Backup/2008/magic.txt 1 blocks
a Backup/2008/sample.txt 1 blocks
a Backup/2008/sample 1 blocks
a Backup/2008/9th.txt 1 blocks

このとき、tarコマンドの引数のファイル部分には「-」を指定していますが、これは結果を標準出力に書き出す指定です。結果をパイプでgzipコマンドに接続し、それを標準出力のリダイレクション「>」を使用して「Backup.tar.gz」に書き出しています。


なお、圧縮アーカイブを解凍する場合にはgunzipコマンドに「-c」オプションを指定します。これは結果を強制的に標準出力に書き出すオプションです。

$ gunzip -c Backup.tar.gz | tar -xvf -【Enter】
x Backup/ok.txt, 25 bytes, 1 tape blocks
x Backup/ng.txt, 25 bytes, 1 tape blocks
x Backup/2008/sep.txt, 25 bytes, 1 tape blocks
x Backup/2008/magic.txt, 25 bytes, 1 tape blocks
x Backup/2008/sample.txt, 25 bytes, 1 tape blocks
x Backup/2008/sample, 25 bytes, 1 tape blocks
x Backup/2008/9th.txt, 25 bytes, 1 tape blocks

マリー先生
マリー先生:
tar + gzip形式の圧縮アーカイブ形式はインターネットでソフトウェアを公開する場合によく使われる形式で、「tarボール」などと呼ばれるの。拡張子は「.tar.gz」のほかに、その短縮形として「.tgz」も使われるのでそれも覚えておいてね。

四色君:
compress形式の圧縮アーカイブもパイプを使ってできますか?
四色君
マリー先生
マリー先生:
compressコマンドの場合も次のようにすればOKよ。
拡張子を「.tar.Z」とすることを忘れないようにね。

$ tar -cvf - Backup | compress > Backup.tar.Z


練習問題

第1問:compress形式の圧縮ファイル「info.txt.Z」を解凍するコマンドとして正しくないのはどれか?

a) compress -d info.txt
b) uncompress info.txt
c) compress -k info.txt
d) gunzip info.txt.Z
正解はこちら
c) compress -k info.txt
gunzipではcompress形式の圧縮ファイルを解凍することもできる。

第2問:カレントディレクトリの拡張子が「.txt」のすべてのファイルをgzip形式で圧縮するコマンドはどれか?

a) gzip *.txt
b) gzip txt
c) gzip -d txt
d) gzipd
正解はこちら
a) gzip *.txt
圧縮コマンドの引数にはワイルドカードを使用してファイルを指定できる。

第3問:Picturesディレクトリのアーカイブを「Pictures.tar」というファイル名で作成するコマンドはどれか?

a) tar -xvf Pictures.tar Pictures/
b) tar -tvf Pictures.tar Pictures/
c) tar -cvf Pictures.tar Pictures/
d) tar Pictures.tar Pictures/
正解はこちら
c) tar -cvf Pictures.tar Pictures/
アーカイブの作成は「-cvf アーカイブのパス」オプションを指定してtarコマンドを実行する。

第4問:Samplesディレクトリをまとめてtar + gzip形式の圧縮アーカイブ「Samples.tar.gz」を作成するコマンドはどれか?

a) tar -cvf - Samples | gzip > Samples.tar.gz
b) tar -cvf Samples.tar.gz Samples/
c) tar -cvf Samples | gzip -c > Samples.tar.gz
d) tar -cvf - Samples | compress
正解はこちら
a) tar -cvf - Samples | gzip > Samples.tar.gz
圧縮アーカイブをひとつのコマンドラインで作成するには、tarコマンドと圧縮コマンドをパイプで接続する。

連載記事一覧 戻る 1  |  2

教科書シリーズ 「UNIXの教科書」 「HAクラスターの教科書」 連載記事一覧

UNIXの教科書「基礎編」

第1日目:ログインしてコマンドを実行してみる
第2日目:ディレクトリやファイルを操作してみる
第3日目:シェルの基本を知る
第4日目:ファイルの基本操作
第5日目:viエディタの操作(基本編)
第6日目:リダイレクションとパイプを活用する
期末試験

UNIXの教科書「応用編」

第1日目:grepコマンドと正規表現
第2日目:ファイルの検索
第3日目:viエディタの操作(活用編)
第4日目:ファイルの圧縮とアーカイブ
第5日目:ジョブとプロセスの操作
第6日目:シェルの環境設定
第7日目:シェルスクリプトでより便利に
期末試験

UNIXの教科書「運用編」

第1日目:ユーザーの管理
第2日目:ファイルの安全管理(その1)
第3日目:ファイルの安全管理(その2)
第4日目:ネットワークの基本を理解する
第5日目:ネットワーク関連のコマンド
第6日目:システム情報の表示
期末試験 New!

HAクラスターの教科書

第1日目:ハードウェア構成を知る
第2日目:ネットワークを設定する
第3日目:共有ディスクを構成する
第4日目:HAクラスターを構成する
第5日目:パッケージを構成する
第6日目:障害テストを実施する
期末試験

 その他の連載記事


本ページの内容は執筆時の情報に基づいており、異なる場合があります。

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

HPEサポートセンター
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項