tar - みる会図書館


検索対象: UNIX MAGAZINE 1995年10月号
21件見つかりました。

1. UNIX MAGAZINE 1995年10月号

連載 / プログラマー入門ー⑨ ろが、言当求できるファイル名の長さには制限があります。 この制限は、おおよそ 100 バイトをすこし超えるぐらい の長さで、長すぎるファイル名は後ろを切られて求され てしまいます。 tar ファイルを展開するときには、言当求さ れているファイル名を使うので、例と同様な尻切れトンポ のファイル名になります。 尻切れトンボのファイルができてしまったときには、そ のディレクトリから下だけをもう 1 度 tar コマンドでコ ピーしてください。このとき、前と同し状態で失敗しない ように、ディレクトリ窈旨定の仕方には注意しましよう。 たとえば、 . /myhome の下を tar で保存していて、 ・・ /deep-directory の下のコピーに失敗 . /myhome/ ・ したときには、 % cd . /myhome/ % tar cvf のようにしてください。 フリー・ソフトウェアの gtar を使うのも 1 つのカ 1 去で す。 gtar には事実 - E 長さの制限がないので、ディレクト リ階層が架くても尻切れトンボになることはありません 5 。 ディレクトリの大きさかっ 尻切れトンボのファイルを作ってしまって反省した B さんは、今度はコピーが成功したかどうかを石忍してから 叫各することにしました。 ファイルのコピーか成功したかを調べるなら、コピー元 とコピー先のディレクトリの下のファイルを 1 っすっ突 き合わせて、 1. 対応するファイルが存在するか 2. ファイルの状態が一致するか 3. ファイルの内容が一致するか を確認するのが本筋です。そこでます、 1 と 2 を石忍する ことにしました。 さいわい UNIX には find コマンドが用意されていて、 ある条件を満たすファイルやディレクトリがみつかると、 指定したコマンドを実行します。これを使えば、コピー元 とコピー先のディレクトリの下のすべてのファイルとディ レクトリに対して、 5 せつかく gtar でアーカイプしたのに、 tar で展開しようとした人もい ましたが・・ " /deep—directory ー ()d 赤か ; tar xfp ー ) UNIX MAGAZINE 1995.10 ls ー 1 ls —lg を実行し、その結果をファイルに保存できます。 「ふむふむ。じゃあ、あとは保存した ls の結果を diff コ マンドで上交するだけね。コピーか成功していれは diff は 何も出力しないはす」 ところがこの目論見は大はすれで、 diff は山のようなメ ッセージを表示してしまいました。 「あやー、また失敗したのかしら。さて、 diff さんはど れが違うっていっているのかなあ。むむ、これはどうし diff の先頭のほうにはディレクトリ名が並んでいまし た。よくよく見ると、ディレクトリの大きさが違います。 「いったい、どういうこと ? だいたいディレクトリの大 きさって何 ? ファイルやサプディレクトリの大きさの合 計・・・・・・ではなさそうねえ」 ディレクトリの大きさが意味するもの 「それでですねえ、ディレクトリの大きさが違うんです よ。でも、違っていてもいいのか悪いのか分からなくて」 ls コマンドか表小するディレクトリの大きさの意味が分 からなかった B さん、さっそくシステム管理者の先輩の X さんの講義を受けに行きました。 X : 「ああ、そ違っててもええんちゃう」 B : 「じゃあ、ディレクトリの大きさってなんですか」 UNIX では、これこれのファイルやサプディレクトリ があるという情報をディレクトリに言当求しておきます。 ls か表小するディレクトリの大きさは、この言当求に使ってい る領域の大きさのことです。 B : 「ふーん、そうなんですか。でも、それならどうして 大きさカ嗹うんですか」 ディレクトリか求用に使う領域には牛未ながあり ます。いったん大きくなってしまった言求用の領域は、フ ァイルやサプディレクトリの数カ鰔っても小さくはなりま または、 せん。 85

2. UNIX MAGAZINE 1995年10月号

連載 / プログラマー入門ー⑨ まうがな」 X : 「何がおつなもんか。雨どころか、俺までふられてし UNIX MAGAZINE 1995.10 と次のようになります。 ls -s の表示はプロック数になっ を実行してできた core を ls ー 1 および ls -s で表小する printf("%d" , 1 / 0 ) ; main() ドで知ることができます。たとえば、 ファイルがディスクを占有する大きさは、 ls-s コマン です。 で、 holefile がディスクを占有する大きさは 2 バイト が、このファイルの 2 バイト目は実際には存在しないの holefile の大きさは 3 バイトと表示されます。ところ すなわち hole の部分も含めた大きさです。したがって、 ls ー 1 が表小するのはファイルの最後のデータの位置、 holefile を考えてみましよう。 バイト目にはデータの入っていない (hole の ) ファイル、 1 バイト目と 3 バイト目にはデータが入っていて、 2 hole のあるファイルの大きさ ステムコールで作成できます。 今回は説明しませんが、 C 言語に用意されている普通のシ hole です。どうすれば穴のあいたファイルを作れるのか、 目にはデータが入っていないファイルだと、 2 バイト目が バイト目と 3 バイト目にデータが入っていて、 2 バイト ではありません。本当にデータが入っていないのです。 1 穴の部分には未のなさそうなデータが入っているわけ ているわけではないの ? 」 メモリ領域にあたる部分には 0X00 あたりの値カ理まっ B : 「やつばりなんだかよく分からない。使用していない 分はファイルに保存するときに、、穴 " となります。 モリ領域の一部分しか使っていません。イ村していない部 いて、あちらへんにはデータをおいて、というように、メ こらへんにプログラムのコードをお けではありません。 行中のプログラムは、メモリ本をくまなく使っているわ イメージをファイルに書き出したものです。ところで、実 core ファイルの中身は、実行中のプログラムのメモリ ているので、 1 プロックを 512 バイトとして上交してみ ると大きさにかなりの差がありますれ % Is ー 1 core 64 core 1 B—san 8413616 Sep 4 12 : 04 core B : 「 hole はまあ分かったとして、でもまだ c 。 re を tar でコピーすると大きくなる・・・・・・つていうのが、分から X : 「それは cp や tar コマンドの man を読んでみい。大 きくなるって書いとうで」 B : 「あ、はんとだ、書いてある。でもコピーって同しも のを作るんしゃなかったつけ。どうしてコピーすると 中身か変わってしまうのかしら」 そもそも、 cp コマンドでファイルをコピーしたときに まったく同一内容のものを作るというのは設解です。 たとえば、ファイルを移動庁る mv コマンドは、ディレ クトリに書かれているファイルの情報を変史するだけで、 ファイルの内容を変更することはありません。したがっ て、移動前と移重圻変のファイル内容は完全に同一です。 ところが、 cp コマンドはコピー前のファイルの内容を 読み込んで、新しく作ったコピー先のファイルにその内 容を書き出すので、完全に同一とはかぎりません。たとえ は、 hole の部分にはダミーのデータを埋め込んでコピー してしまうので、コピー後のファイルには hole がなくな り、 ls ー 1 で表示したときの大きさが、そのままディスク を占有する大きさになります。 tar コマンドも cp コマンドと同じで、 hole のあるファ イルをコピーしたときに、 hole 部分が穴埋めされて巨大 化したファイルをコピー先に作ります。そのため、コピー 先のディスクか謚れてしまうのです。 凾の tar ではファイルか巨大化するのを避けられませ んが、フリー・ソフトウェアの gtar は、穴のあいたファ イルをそのまま保存してくれます。 core やその他の穴あ きファイルのコピーが頻繁なら、手元に 1 つ gtar を用意 しておくとよいでしよう。 87 ( あらい・みちこ ASTEC)

3. UNIX MAGAZINE 1995年10月号

図 11 ppp を通常のモードて行 root@skinhead$ ppp —x Pdemand Dia1ing 0 Ⅱ /dev/tty01. Synchronizing with modem (ATEI) . M0dem synchronized lnitialize modem (ATVI) . Dia1ing. Modem status : CONNECT 9600 Log 土 n ・ Send: く AM> Expect く ogin> ( 15 sec) Got : く AM-MAJ10gin> OK Send : く Pdia1inAM> Expect く word> ( 15 sec) Got : く : Pdia1inAMAMAJPassword> OK ←即座にダイヤリングを開始 Send : く open—sesAM> Set PPP 1 土Ⅱ e disc . Wait for BOS (tlu) on pppO add net default : gateway 163.221.55.1 done . Wait for End Of Session . Restore & c10se 1ine Running "/etc/netscripts/ppp GOt it . Running "/etc/netscripts/ppp. up Pdemand pppO 163.221.55.2 163 . 221.55.1 " . down Pdemand root@skinhead$ ■ done . delete net default : gateway 163.221.55.1 ← ppp. 11P の実行 ←アイドルタイマーによる回線の切断 pppO 163.221.55.2 163.221.55.1 " ← ppp. down の実行 コンソールに日本語か表示できる利点はなんでしよう。 X ウインドウ・システムを起重丿にきれは、 kterm などで日 本語を簡単に表示できます。ところが、 CPU が非力、メ モリが少ないなどの理由で X の起動が困難なこともあり ます。このような場合でも、日本言韶 ) ドキュメントを読む には、なんとかして X を起動しなければなりません。し かし、これからは違います。コンソールで日本語か読めま す。ー叫リでしょ ? ( ホンマかな ) インストールの準備 ます、日本語キット # 2 の CD-ROM からソースを 取ってきます。 / c 。 m にマウントされている場合は、た とえば次のようにします。 下に、おもなファイルを紹介します。 ・ README : 日本語 (JIS) ドキュメント ( インストー ル方法や説明か記載されている ) ・ doc/change. log . 変更履歴 ・ doc/readme. jis : README と同し ・ fonts/ : 日本語表示のためのフォント ・ kernel-patch : カーネル , のノヾッチファイノレ ( ソー スとオプジェクトの両方 ) README ファイルは、付属の紙のドキュメントとは は 1 司じです。なお、ドキュメントのなかのパッチファイ ルの名前カ墹違っています。以下に訂正しておきます。 # cd work ←どこか適当なディレクトリ # gtar zxpf /cdrom/jp—boot/consd. tar ・ gz または、 UNIX MAGAZINE 1995.10 らそのなかにひと揃いのファイルが用意されます。以 これで、 work の下に consd というディレクトリが作 # gzcat /cdrom/jp—boot/consd. tar. gzl tar xpf ディレクトリ kernel—patch/ 誤 cons. c. patch ioctl-compat. h. patch cons. C. diff ioctl-compat. h. diff 23

4. UNIX MAGAZINE 1995年10月号

名の表冫六は aaa のままです。ところが、画面の表小は aaa 連載 / プログラマー入門ー⑨ ジョンを使っていれは大丈夫でしよう。しかし、やはり もとにした Mule-2. x では発生しないので、新しいバー Demacs 、 Nemacs などでは発生しますが、 Emacs- 19 を この症状は Emacs-18 をもとにした、 Mule-1. x 、 ると、 bbb に書き込みます。 いて、次にこのファイルをファイル名を指定せすに保存す のままでも、 Emacs は bbb のファイルとして記應して 知リをもう 1 つ追加します。 工デイタからのコピーは危なそうです。 tar だって安心できない できました。次に、システム管理 1 年生の B さんと tar ところが、この単純な操作がさまざまなトラブルを運ん . ) ー ()d dstdir; tar xfp ー ) % ()d 0 市 r ; tar cvf の処理は次のコマンドで実行します。 リの下のファイルを移動するのが一殳的な対処法です。 ときには、新しいディスクを用意して、 tar でディレクト たとえば、いままで使っていたディスクか窮屈になった のまま別のディレクトリに簡単にコピーできることです。 イスク上のあるディレクトリの下のファイルをそっくりそ tar 羽更利な点は、テープに保存するだけではなく、デ 下のファイルもすべて自重加勺に集めて保存します。 クトリか楷層になっているときには、サプディレクトリの ディレクトリを tar 形式でテープに保存します。ディレ tar は tape archiver の略で、指定されたファイルや 使い方か簡単なので、多くの人か愛用しています。 るのにも利用されます。とくに、 tar は cpio にくらべて ピーしたり、複数のファイルを 1 つのファイルにまとめ はなく、ディスク上のファイルをあちらからこちらへコ があります。これらのコマンドはテープに保存するだけで ファイルをバックアップするコマンドには tar や cpi 。 ・ファイルはシェルでコピーしてから編集する。 84 あるとき、 B さんからメールか届きました。 移動したら減っちゃった コマンドの闘いの日々を紹介しましよう。 「あなたのディレクトリエをリ yy に移動 ( コピー ) し ました。内容を石忍してください」 一般には、すべてのファイルが正しくコピーされてい るかどうかの石忍は厄介です。でも、このときはあるプロ グラムか動けはよかったので、プログラムを起動してみま した。すると、次のような、、設定ファイルがない " という メッセージを表示して終了してしまいます。 % 〃 7 、四 ram 設定ファイル 'long_long-name-config' が存在しません。 プログラムを終了します。 ls でファイルの一覧を表示させてみると、たしかにメッ セージでいわれたファイルは存しませんが、 long—long—name というファイルがあります。 「これはどうも怪しいぞ」 さらに元のディレクトリを調べると、そこには long- longname-conf ig はあります力ゞ、 long-long-name な んてファイルはありません。中身をくらべると同じだった ので、どうもファイル名カくなってしまったようです。 コピー後の同しディレクトリのファイルを見てみると、 ファイル名の長さはどれも 14 文字以下に切られています。 「あれ一、このディスクって SystemV4 だっけ ? 」 同本ル ) 問題の原因は、 tar カえるファイル名 ( パス名 ) の長さにもあります。 tar 形式のファイルには、保存して いるファイルの名前がディレクトリ名も含めて言当求されて います。言求されているパス名は、 tar コマンドを実行し たときに指定した名前になります。 次のように相対パスで指定すると、 tar ファイルには相 対パスて表現したファイル名か求されます。 % tar cf myhome. tar . /myhome たとえば、 myhome ディレクトリの下の aaa というファ イルは、 . /myhome/aaa というファイル名で tar ファイ ルに言当求されます。 ディレクトリの階層カ架かったり、ファイル名カ張いと きには、当求されているファイル名カ張くなります。とこ 4 旧い SystemV ではファイル名の長さが 14 文字以下という制限があ りましな近ごろではこんな制限が残っている OS には、とんとお目に かかれません。 UNIX MAGAZINE 1995 ユ 0

5. UNIX MAGAZINE 1995年10月号

ソフトウェア技術者、 情報 / 電子関連業界の方のための 求人情報メーリングリスト ル又 一三ロ 図 7 tar コマンドによるアーカイプ・ファイル乍成 % ls —R 8 . tex Back/ 1 . t ex 2 . tex 4 . tex 6 . tex 9 . tex 5 . tex 7 . tex 10 . tex 3. tex Back : 3 . tex . 01d 1 . tex .01d 2 . tex .01d % du —s 288 % tar cvf Genko . tar * 1 . tex 10 . tex 2 . tex 3 . tex 4. tex 5 . tex 6 . tex 7 . tex 8 . tex 9 . tex Back/ Back/1 . tex .01d Back/2. tex .01d Back/3. tex .01d コンピュータ業界の技術者達の、「こん なリストがあったらいいね」という会話 から、求人情報を lnternet 経由のメールで お送りするサービスが誕生しました。 ◆ソフトウェア技術者と、コンピュ ータ / 電子関係の業界の方に、メ ールで求人情報をお送りします。 ◆登録は簡単で、下記の方法でお申 し込みのメールをいただくだけで す。あなたのメールアドレス以外 の情報は必要ではありません。ま た、リスト内容は非公開ですので 匿名性が保たれるだけでなく、登 録抹消もすぐにできます。 ◆登録リストは次の二つです。 * ソフトウェア技術者の求人情報 JOB 凵 ST-SOFT * 情報 / 電子 / コンピューター般の求人情報 JOB 凵 ST-INFO JOBLIST@PO. iijnet. or.jp 宛てに、ご希望のリスト名 を記入してメールをお送りください。 ◆一般のパソコン通信サービスから も、ゲートウェイ経由で簡単に登 録・利用が可能です。 ( 上記と同様の方法でご登録ください ◆ご利用は無料であり、利用に際し て義務は一切生じません。 ( ただし、当サービスをご利用になる際の利用者側通 信サーピス料金及びそれに関わる N 科回線料は、利 用者個人のご負担となります。 ) お申し込み、お問い合わせは、 下記アドレスにメールでお送りください。 JOB 凵 ST@po.iijnet.or.jp ジョブリスト事務局 〒 103 東京都中央区日本橋 3-3-3 いずみやビル 4F 八重洲ビジネスパーク内 03 ( 3273 ) 5504 FAX: 03 ( 3273 ) 6501 TEL: 資料請求 No. 00D コマンドを次の形式て使います。 出すには、 t ar ーカイプ・ファイル名 [ 取り出すファイル名 ... ] tar xvf ア 取り出すファイル名には、アーカイプ・ファイルから 取り出したいファイル名を指定します ( 省略すると、すべ てのファイルか取り出されます ) 。このとき注意しなけれ ばならないのは、アーカイプ・ファイルに絲タしたときと 同じ名前を指定しなければならない点です。たとえば、 . /ayasan という名前でオ褓内されたのならは、 tar xvf arch. tar . /ayasan と指定します。次の例を見てください。 % tar cvf test ・ tar . /1. tex . /1. tex % tar xvf test . tar 1 . tex found archive tar: 1 . tex not % tar tvf test . t ar . /1. tex % tar xvf test . tar . /1. tex . /1. tex 167 UNIX MAGAZINE 1995.10

6. UNIX MAGAZINE 1995年10月号

UN Ⅸへの招待⑩ 図 8 アーカイプ・ファイルのイ乍成と圧縮 図 9 ディスク使用量の比較 % ls 1 . t ex 2 . tex 10. tex 3 . tex % du —s 292 % tar cf Genk0—95. tar % rm —rf * . tex % ls Genko_95. tar % du —s 280 Back 5 . tex 4. tex 96 % du —s % ls Genk0—95. tar ・ gz % gzip Genk0-95. tar 6 . tex 7 . tex 8 . tex 9 . tex Back/ % ls 1 . tex 2 . t ex 10. tex 3 . tex % du —s 288 % gzip ¯r * % du —s 120 % gunzip ーて * % du —s 288 4 . tex 5 . tex 6 . tex 7 . tex 8. tex 9 . tex Back/ たんなるファイル名、相対パス名、糸寸パス名のいずれ を用いてアーカイプ・ファイルにオ内されたかを石忍した うえで、正しいファイル名を指定してください。なお、 tar tf アーカイプ・ファイル名 を実行すると、アーカイプ・ファイルに格納されている ファイルの名前が表示されます。これを見れば、どのよ うなファイル名てオタされているかか調べられます。 tar と rm と compress tar にはたくさんのオプションがあり、さまざまな使い 方かて、きます。ここでは、ファイルの整理に関連した上記 の使い方にとどめておくことにします ( 興味があれば、マ ニュアルを読んでください ) 。保存すべきファイルをアー カイプ・ファイルにまとめたら、もとのファイルを rm コ マンドですべて削除し、アーカイプ・ファイルを pack 、 compress 、 gzip などのコマンドでⅡ孫宿します。 図 8 では、アーカイプ・ファイル作成の前後、アーカイ プ・ファイルを ) 宿したあとのディスクプロック使用量 を、 du コマンド 5 で詩ヾています。アーカイプ・ファイル 作成前は 292 プロック使っていましたが、作成後 ( アー カイプ・ファイルを除き ) すべてのファイルを削除する と、 280 プロックになりました。でも、たった 12 プロッ クしか減っていません。じつは、個々のファイルを 1 つ のアーカイプ・ファイルにまとめても、ディスク容量が 大幅に肖鹹されることはありません。アーカイプ・ファイ 5 容量をキロバイト単位て表示するものもあります。 168 % tar cvf Genk0. tar * % rm —rf * . tex Back % gzip * % ls Genk0. tar ・ gz % du -s 88 ☆ ださい。次回は、これ J)J 、タ ) ファイル整理ガ去について紹 理でき、ディスクも節約できます。ぜひ、試してみてく にして保存すると、ホームディレクトリの下がきれいに整 存するガ去を紹介しました。イ ) ないファイルをこのよう イルをアーカイプ・ファイルにまとめ、それを ) 宿して保 今月はファイルの圧縮方法と、しは・らく使用しないファ できます。 イルにまとめてか引丑宿したほうが、ディスク容量は節約 のファイルを ) 宿して保存するよりも、アーカイプ・ファ ロックに減ります。状況によっても異なりますが、個々 イルにまとめた場合は、それを gzip で宿すると 88 プ 120 プロックに減ります。 tar で 1 つのアーカイプ・ファ プロックですが、 gzip で個々のファイルを圧縮すると 図 9 では、ディレクトリのディスク使用量は最初は 288 スク使用量を上交してみましよう。 アーカイプ・ファイルにまとめてから圧縮した場合のディ もいるでしよう。ファイルをばらはらに圧縮した場合と、 す。それなら、個々のファイルを ) 宿すればと考える人 ルを圧縮することによって、はしめて節約か可能になりま 介する予定です。 UNIX MAGAZINE 1995.10 ( さかもと・あや )

7. UNIX MAGAZINE 1995年10月号

IJN Ⅸへの招待⑩ 図 6 gunzip による復元 % ls ー 1 total 120 1 aya 1 aya 1 aya % compress COMP % gzip GZIP % pack PACK pack : PACK : 29.1 % Compression % ls ー 1 total 64 % gunzip * % ls ー 1 120 tota1 0 N 8 8 8 ロ 0 5 ロ ) っ ) 3 っ 0 っ 2 っ 4 3 3 3 -1 一イよ・ 1 亠 bO bO bO 8 8 8 6 6 6 9 9 っっ ) っ ) N bO N H O 0 N 8 8 8 5 5 5 3 3 3 っ乙 2 っ乙 3 3 3 1 1 イよ bO bO bO 2 2 0 ロ 0 8 っ 5 3 1 9 5 8 -1 1 つん 1 1 ・ 1 0 N 8 8 8 5 ロ 0 5 3 っ 3 つんっ乙っ乙 3 3 3 1 -4 上 1 bO bO OO 8 8 8 ( 0 6 (D 9 9 9 3 3 3 cd -1 1 -1 アーカイプ・ファイルは、 tar 、 lha などのコマンド を利用して作成します。ここでは、どの UNIX でも一ヨ殳 的な tar について説明します (lha については、稿を改め て紹介する予定です ) 。 tar 吏い方 tar でアーカイプ・ファイルを作るには、次のような形 式でイ吏います。 tar cvf アーカイプ・ファイル名ファイル名 ファイルをまとめて保存する アーカイプ・ファイル名には、アーカイプ・ファイルに 付ける名前を指定します。ファイル名には、アーカイプ・ こまでは、ファイルを個々に圧縮してディスク容量 ファイルにオ絲タするファイルの名前を指定します ( 複数指 を節約する方法を説明しました。次は、いくっかのファ 定が可能です ) 。ファイル名がディレクトリの場合は、そ イルをひとまとめにしてか引下縮するガ去を勉強しましょ のディレクトリを起点としたツリー上のすべてのファイ う。状況によっては、こちらのはうがディスク容量をよ ルかオタされます。 りたくさん節約できることもあります。 ある仕事に関連するファイルは、 1 つのディレクトリ 前記の使用去のうち、 cvf の v は省略してもかまい ません。これは、 verbose ( 冗長 ) というオプションで、指 ( あるいはそのディレクトリを起点にしたツリー ) にまと 定すると実彳学にアーカイプ・ファイルにオ褓内されたファ めておくのが一ヨ勺です。その仕事、たとえばフ。ログラム イルの名前カ咄力されます。例を見てみましよう ( 図 7 ) 。 開発やレポート作成カ鮗了したら、様変史や書き直しな こでは、 Genko . tar という名前のアーカイプ・ファイ どがあるまでそれらのファイルを使わなくなるはずです。 ルに、カレントディレクトリのすべてのファイルをオ褓内 このようなときは、私はそのディレクトリを起点にした しています。 ファイル群を一括したアーカイプ・ファイルを作り、そ tar で作成したアーカイプ・ファイルからは、必要に応 れを圧縮して保存しておきます。もちろん、アーカイプ・ していつでもファイルを取り出すことができます。取り ファイルに保存したもとのファイル群は削除します。 UNIX MAGAZINE 1995 ユ 0 PACK. gz Test/ Test : COMP . gz GZIP. gz % gunzip ーて * % ls Test/ PACK Test : COMP GZIP 166

8. UNIX MAGAZINE 1995年10月号

画面 1 HotJava file 0 tions NaV1 ate eo わ Hel Document URL: d0 こ : ″ / demo / so B 応地新れ C 阯山と叩はいミ社れ , C k ! 030 町 0 を . 連載 /Windows NT と何カ起こりそうだ。 UN Ⅸシステム上のバックアップ・ テンヾイスとして、 Sun に QIC-150 のテーブドライプカ材妾 続されているが、高価なわりに容量の少ないメディア 3 に バックアップをとるくらいなら、ハードディスクをたくさ ん買ってコピーしておいたほうがましである。となると、 Windows NT サーバーに接続されている 4mm DAT を 使うしかない。 samba を用いて NT に UNIX のファイ ルシステムを公開し、このレベルでバックアップをとる方 法も考えられる。ただし、これだとファイルの中身はバッ クアップできるが、 UNIX のファイルシステムのもつ情 報がすべてイ尉寺されるわけではない。リンク、アクセス日 付などの情幸師ゞ消えてしまう。これによって、なんらかの トラブルカ起きるかもしれない。 結論からいえは、 UNIX 上の tar を使って NT 上の テープを読み書きするのがもっとも確実な方法であろう。 この連載で以前に紹介した ( 1995 年 5 月号 ) NT 上の tar では、 H 朝新 : 3 ら AÅlorifhrfi Ü可 00 3 5 地g@tル平催5。厩0加 0600 ー tar cvf \ \. *tape0 アイデアではない。 UNIX では成功を収めたものもある などとしてローカルのテープを扱える。この¥¥. *tape0 が、 Windows や MacOS などに対しては何度も試みら という名則は、一見すると UNC (Universal Naming 失敗を重ねてきた。 OS の機能 j 助日に追いつけないか Convention) に従ったファイル名のようだが、しつは特 らだ商用アプリケーション間の競争がある世界では、汎 殊なもので、 用アプリケーションは専用アプリケーションに勝てない。 Windows NT での利用を考えると、たとえば OLE への tar tvf **sputnik2*tape0 非対応は問題になる。画像処理、ダブルバッフアなど、と などとやってもリモートのテープか読めるわけではない。 くに表示に関する機能窈助日は進められているが、しよせ ¥¥. ¥ t 叩 eO というファイルを公開するガ去はみつからな んはイタチごっこである。これて何をするのかと問われて も、プログラミング・コンテストくらいしか思いつかない。 一方、 GNU tar では、 ただし、 WWW のメカニズムに組み込めばアプリケー tar cvf sputnik2 : /dev/tape ションの配布はかなり容易になる。トロイの木騎問題もあ るが、あくまでプラウザだと長すれば Java にもチャン のような書式でリモートシステムのテープにバックアップ スがないわけではない。しかし Netscape と HotJava の がとれる。ソースコード ( VI. 11.2 ) を見ると、 rsh また 統合は、 Java インタープリタの機能を制限したものをへ は rcmd を使い、テーブドライプか接続されたシステム ノレヾー・アプリケーションとして Netscape から呼び出 で rmt というコマンドを起動している。 rmt は標準入力 す以外、実現の見込みは薄い。 からコマンドやデータを受け取り、テーフ調でテ。ータのや りとりをし、標準出力にデータを書くだけのプログラムで ある。 rsh の受け側はすでに樹直されているので、これを探し てきてインストールし、 5 月号で紹介したようなライプラ 社内のデザイナーたちは SGI の UNIX システムで仕 事をしているが、そろそろバックアップをとっておかない 3 IMB あたり約 20 ハードディスクは IMB あたり 40 ド抔鬼 し、 tar 109 UNIX MAGAZINE 1995.10

9. UNIX MAGAZINE 1995年10月号

UN Ⅸ知恵袋 島慶ー Z シェル ( 1 ) 、弘法丿朝市という偉いお坊さんがいました。彼は僧と して優れていただけではなく、書家としても立派な責を 残しています。「弘法筆を選ばす」という言葉が示してい るとおり、どんな粗末な筆を使ってもすばらしい字を書い たといわれます。 昔の人は、筆や紙を思考を補佐する道具として利用し ていました。我々にとっての筆や紙は言峩でしようか。 私はまだまだ未熟者で弘法大師に遠くおよびませんが、日 夜 1 努力しています。 今回は、我々の筆のひとつであるコマンド・インタープ 弘法大師の筆 zsh のインストール リタ Z シェル (zsh) を角見します。 を石俿忍しました。 BSD/386 1.1 ) 、 BSD/OS 2.0 でコンパイルできること 5.2 、 SunOS 4.1.3 、 SoIaris 2.4 、 BSD/OS 1.1 ( 旧称 い。私の環上竟では OSF/I V2.0 、 ULTRIX V4.3 、 IRIX リで configure スクリプトを実行し、 make してくださ め、コンパイルは簡単です。 zsh を展開したディレクト から入手できます 2 。 zsh は autoconf を用いているた zsh-2.6-beta10. tar. gz で、 anonymous FTP サイト zsh の最新バージョンは 2.6010 です。ファイル名 ftp.tohoku.ac ・ jp:/mirror/zsh/src/zsh-2.6-beta10. tar ・ gz 夜はっかりという声も聞こえますが : ー ) . /configure cd zsh—2.6—beta10 $ gzip ¯cd zsh-2.6-beta10. tar ・ gz ー tar xf 2 1 88 $ make ただし、 BSD/OS 1.1 でコンパイルするときは注意が 必要です。 BSD/OS 1.1 では、コマンド名 gcc で gcc VI. 42 か起動します。 zsh の作者は gcc V2 以降を仮定 しているらしく、ふつうに c 。 n gure スクリプトを重肋、し てもうまくいきません。 BSD/OS 1.1 を使っている人は、 次のように c 。Ⅱ gure スクリプトを起動してください。 $ CC=gcc2 . /configure ← Bourne シェル系の場合 . /configure) ← C シェル系の場合 % (setenv CC gcc2; どうしても gcc VI. 42 を使いたい人は、図 1 のパッチ を当ててください。 問題なく作成できたらインストールします。 $ make inst aI 1 とくに指定しなければ、 zsh は /usr/local/bin にイン ストールされます。 zsh をログインシェルとして利用する 場合は、必要に応して /etc/shells に zsh のパスを追加し てください。 zsh の概要 zsh は、次に挙げる特徴をもっています。 ・ログインシェルとして利用可能な対話的処理 UNIX MAGAZINE 1995.10 ・ジョブ制笹能 ・シェル・オプションによるシェルの動作のカスタマイズ ・ユーサー定義可能なコマンド補冠幾能 ・スペノレ言丁財幾育皀 ・コマンド行ク扁集機能

10. UNIX MAGAZINE 1995年10月号

連載 / プログラマー入門 B : 「しゃあ、大きくなってしまったディレクトリを小さ くするにはどうすれはいいんですか」 X : 「そりや、新しいディレクトリを作って、元のディレ クトリの下のファイルなんかを全部移動けるんやな」 すっかり糸断等した B さん、さっそく作業の続きに取り かかりました。 て表示します。ただし、 du コマンドは、プロック数 " と いう単位 (SunOS では KB 単働て表小するので、あな X : 「どや、進んどうか」 たの計算機で 1 プロックカ可バイトなのかを知っていな 「ええ、まあまあ。あ、それでですね、ついでに中身 B くてはなりません。たいていの OS では、 1 プロックは か空つほ。の巨大なディレクトリをみつけたので、小さく 512 バイトか 1 024 バイトです。 しておきました」 B さんカ蔀寉認したときには、コピー元のディレクトリの X : 「もしかして 1 。 st + f 。 d って名前とちゃうやろな」 下の使用量よりもコピー先のディスクの残量が多かったの B : 「え、なんで分かるんです。まさかいま流行りの超能 で、入るはすでした。ところが、実際に tar コマンドでコ カ ? 」 ピーしてみると、入りきらすに失敗してしまいました。 X : 「そいつは小さくしたらあかん ! 」 lost + found は、ファイルシステムが壊れたときに、チ B . 「で、 df と du の表示を見るかぎりは入るはすなの ェック・プログラムがみつけた迷子のファイルを置く場所 、 tar でコピーするとディスクが溢れてしまうんです。 です。 いったい何か起きたんでしよう」 X : 「開発用のディレクトリをコピーしてたんやつけ。も ディレクトリにファイルを置くには、ディレクトリに 当求します。言当求用の領域が足りないときには、ファイル しかして core ファイルがたくさんあったんやないか」 B : 「ええ、山はどありましたよ」 ノステムの使っていない領域を割り当てます。ところが、 X : 「きっとそれが原因やで」 ファイルシステムか壊れたときに、新たな領域を割り当て るのは危険なので、 lost + found には最初から一ト分なディ B core カゞ ? 」 レクトリ領域を石呆するようにしてあります。 X : 「 core には hole があるから、 tar でコピーしたとき に大きくなったんやで」 B さんは、わけありて大きくしてあったディレクトリ をわざわざ小さくしてしまったのでした。 穴があったら入らない またまたディスクか謚れそうになったので、ディレクト リを移重丿庁ることになりました。担当はこれまた B さん。 B : 「うーん、引越し先も狭くてぎりぎりだけど、すこし は余裕があるからいいか」 ディスクの残り容量は df コマンドて知ることができま す。たとえば、あるディレクトリ dir のディスクの全容 量、使用量、残量は次のコマンドて表示されます。 used avail capacity Mounted on 73 % 66404 25106 また、ディレクトリの下のファイルやディレクトリ全 体の使用量を知るには、 du コマンドを使って、 % du -s 市 7 ・ 市 7 、 56752 一三ロ、、 hole のあるファイル X さんの説明か理解できなかった B さん。 hole の説明 をしてもらおうとして、 X さんを離しません。 B : 「 hole ってなんですか ? 」 X : 「日本語に訳してみい」 B ・「穴」 X : 「そのとおりや、ファイルに穴があいとんねん。しや、 そういうことで、ほなさいなら」 B : 「ちょっと待ってくださいよ。いまの説明じゃ、さっ ばり分かりませんよお」 X : 「えー、でも俺、これからデートやねん」 B : 「雨降りのなかを待たせるのもおつですよ」 % df 市 7 、 Fi1esystem /dev/sdOa 86 UNIX MAGAZINE 1995.10