日刊アスキー Linux Top ASCII24 News ASCII24 Review ASCII24 Business Center 携帯24 Mac24 Akiba2GO! 日刊アスキー Linux デジタル用語辞典 ASCII24 Broadband Center ニュース 今日のコラム イベント情報 セミナー情報 Linux magazine ASCII24メールサービス アスキー編集会議
ASCII24 - [Main Menu] [Menu 2]
  ASCII24 > 日刊アスキー Linux > All ASCII Linux Issue 1
111
記事/用語/ID検索 

Linux Magazineの最新記事一覧

Biz Express Focus 『HDE Mail Filter 1.0』 (2003年7月8日)
Biz Express Focus “Ready for e-business” (2002年6月7日)
これで解決! Linux 100の疑問―その3 (2001年9月6日)
これで解決! Linux 100の疑問―その2 (2001年8月27日)
これで解決! Linux 100の疑問―その1 (2001年8月24日)
覚えておきたい必須コマンド30―その6・vi、最初の一歩 (2001年7月13日)
覚えておきたい必須コマンド30―その5・シェルを使おう (2001年6月27日)
覚えておきたい必須コマンド30―その4・コマンドリファレンス (2001年6月18日)
覚えておきたい必須コマンド30―その3・管理コマンド (2001年6月12日)
覚えておきたい必須コマンド30―その2・便利なコマンド (2001年6月9日)
覚えておきたい必須コマンド30―その1・ファイルの基本操作 (2001年5月31日)
初めてでも大丈夫!今日から使える Linux (第3部) (2001年5月25日)
初めてでも大丈夫!今日から使える Linux (第2部) (2001年5月21日)
初めてでも大丈夫!今日から使える Linux (第1部) (2001年5月14日)






Contact Information

[PR]
Printable Version All ASCII Linux Issue / Linux Magazine 2000年5月号

覚えておきたい必須コマンド30―その2・便利なコマンド

知っているとオペレーションが100倍便利になる各種のコマンドを覚えよう


2001年6月9日

ファイルの圧縮と展開

ソースファイルや文書ファイルを配布するときに、バラバラに渡すと必要なファイルがなかったりして混乱しやすい。そこで複数のファイルをまとめることになる。この用途のためのプログラムはアーカイバとか書庫プログラムと呼ばれる。アーカイバにもいろいろあるが、Linuxではtarがよく使われている。

アーカイブファイルを作成するには、作成を指示するためのcオプションと、出力ファイルを指定するためのfオプションを指定する。そして、含めるファイルを指定する。


USER$ tar cf ciao.tar ciao.c ciao.1 Makefile

ディレクトリを指定した場合は、ディレクトリ情報も保存される。


USER$ tar cf hoge.tar ciao

作成されたtarファイルの内容を確認するには、cの代わりにtオプションを使う。


USER$ tar tf ciao.tar
ciao/.exrc
ciao/Makefile
ciao/ciao.c
ciao/ciao.1

tarファイルを展開するには、xオプションを指定する。ディレクトリ付きで作成されているtarファイルの場合は、そのディレクトリもあわせて復元される。


USER$ tar xf ciao.tar
USER$ ls -a ciao
.    .exrc      ciao.c
..   Makefile   ciao.1

 パス名を含めてtarファイルを作成するときは、少し注意が必要だ。絶対パスで保存をしてしまうと、パーミッションの関係から、スーパーユーザーでないと展開できなくなる可能性があるからだ。GNU版ではPオプションを付けない限りは、先頭の/を取り除いてtarファイルを作成するようになっている。だが、他のOSが提供しているtarコマンドもそうだとは限らない。間違いを減らすためにも、つねに相対パスで指定するクセを付けるほうがよいだろう。

tarコマンドは、ファイルをまとめるだけで圧縮はしない。そのため、ファイルの大きさを小さくするには、別に圧縮をする必要がある。以前は圧縮形式として、compress形式が使われていたが、最近はより圧縮率の高いgzip形式が使わることが多い。

tarファイルを圧縮するには、次のようにする。


USER$ gzip ciao.tar

すると、カレントディレクトリにciao.tar.gzが作成される。tarでまとめたものをパイプでgzipコマンドに渡すこともできる。tarコマンドのーは標準出力を示している。gzipコマンドのーcも標準出力へ出力するオプションである。


USER$ tar cf - ciao | gzip -c > ciao.tar.gz

逆に、tar+gzipで作られたアーカイブのリスト一覧を見るときや展開するときも同様に行える。gzipのdオプションは、展開をするためのオプションだ。


USER$ gzip -cd ciao.tar.gz | tar tf -

GNU版のtarでは、tarコマンドのzオプションで同様のことができる。


USER$ tar zcf ciao.tar.gz ciao
USER$ tar ztf ciao.tar.gz
USER$ tar zxf ciao.tar.gz

tarコマンドは、ファイルシステムを越えて、ディレクトリを移動するときにも便利だ。次の例の後半は、ディレクトリを移動して、そこで標準入力から受け取った内容を展開している。後半部分をかっこで括らないと正しく動作しないことに気をつけてほしい。


USER$ tar cf - hoge  | (cd /export/share/fuga ; tar xf - )

また、rshコマンドを利用できれば、ネットワークを越えてファイルコピーするのにも使える。


USER$ tar cf - hoge | dd bs=1024 | rsh リモートホスト名 dd bs=1024 of=hoge.tar.gz

2番目のddコマンドは出力するブロックサイズを指定するためだけに用いている。そして、リモートホストのddでは、ofオプションでhoge.tar.gzに書き出している。ofの指定をテープデバイスに指定すれば、ローカルホストに接続されていないデバイスにバックアップすることができる。

(中野 賢)


[前ページ]

Contents...



Copyright (C) 1997-2006 ASCII Corporation. All Rights Reserved.
No portion of this web site may be reproduced or duplicated without the express written permission of ASCII Corporation.
This web site is written in Japanese only.
記事に関するご意見やご質問は、お問い合わせフォームにてお送りください