iSeries での zip ファイルの作成/解凍

iSeries 上での zip ファイルの作成のしかたと解凍の仕方をちょっと取り上げてみました。

zip ファイルの作成 (圧縮)

i5/OS のオブジェクトをネットワークのつながっていないところやネットワークの遅いところ、テープの互換性のないマシンに送る、またはメールなどに添付して送らざるを得ない、といったような場合、iSeries 上で zip ファイルを作成できると便利なこともありそうです。ま、できてよくないことはないと思いましたので、ちょっとやり方をまとめてみました。

まず、i5/OS オブジェクトを zip ファイルに圧縮して使用できるところを例にとって見ていきましょう。

SAVF への保管

i5/OS を zip したい場合、まずは保管ファイルに保管します。
逆に言えば、保管ファイルに保管できるオブジェクトあれば、圧縮できる、ということになりますね。

IFS 上にコピー

圧縮したいオブジェクトを保管した保管ファイルを、そのまま無変換で IFS 上にコピーします。

IFS 上のオブジェクト

コピーした先のファイルが、WRKLNK コマンドで見てちゃんと存在しているのを確認してみましょう。

また、もともと IFS 上のオブジェクトである場合はここからスタート、ですね。

考慮点: CCSID

保管ファイルからそのままコピーした場合は、ジョブと互換性のある EBCDIC 系の CCSID がついています。
元々 IFS 上にあるオブジェクトの場合、943 などの PC 系の CCSID がついていても問題はありません。(後で見てみましょう)

zip ファイルの作成

以下のように -cvf オプションを使用して zip ファイルを作成します。

jar -cvf /home/test/SQLTEST.zip -C /home/test SQLTEST.file

個々のオプションの説明については後述します。

zip ファイルができているのがわかりますね。

解凍

zip ファイルを解凍する場合は、以下のように -xvf オプションを使用します。

jar -xvf /home/test/SQLTEST.zip

解凍先はカレント・ディレクトリ

jar -xvf の前に cd /home/test2 とカレント・ディレクトリの変更を行っています。
解凍された zip ファイルの中身はそのカレント・ディレクトリに配置されます。

CCSID の変更

元々最初の圧縮例で見たように CCSID は 1027 がついていたのですが、IFS に新規作成したファイルは 943 という ASCII の CCSID がついてしまっています。

この IFS 上のファイルを i5/OS 上の保管ファイルにコピーするためには、ジョブ上でコピーしあえるように互換性のある CCSID に変更する必要があります。

EDTF コマンドでいったん開いた後に、以下のようなオプションを使用して CCSID を変更します。

CPY

以下のように CPY コマンドを使用して IFS ファイルから i5/OS オブジェクトにコピーします。

使用できるかどうか、確認してみましょう。

ちゃんと復元できているのがわかりますね。

ダウンロードした zip ファイルの解凍例

web 等からダウンロードした zip ファイルも同様のコマンドで解凍することができます。

サブディレクトリもちゃんと作成されますし、

IFS 上にファイルも作成されます。

解凍例と圧縮例

-cvf と -xvf の間に一回削除しています。

ちゃんと IFS ファイルも圧縮されるのが確認できますね。

オプションの説明

個々のオプションの説明です。
ま、ヘルプを出力してみただけですが ......

[Top Pageに戻る]

Ads by TOK2