形式
mv [–fiMUv]
[–F format|B|T|X]
[–P params] [-W
seqparms=params] [–Z]
[[–O u | c=codeset] file1
file2
mv [–ACfiMUv]
[–F format|B|T|X]
[–S suffix] [–Z]
[–O u | c=codeset] file …file … directory
mv –Rr [–fi]
[–Z] [–O u | c=codeset] directory1 directory2
説明
mv はファイルを名前変更し、また、ファイルを異なるディレクトリーに移動します。
複数のファイルを指定する場合は、ターゲット (すなわち、コマンド行の最後のパス名) は
ディレクトリーにする必要があります。mv は、ファイルをそのディレクトリーに移動し、それらにソース・パス名の最後のコンポーネントに一致する名前を与えま
す。単一のソース・ファイルを指定し、ターゲットがディレクトリーでない場合
、mv はソースを新しい名前に (可能であれば、単に名前変更によって) 移動します。
mv を使用して、MVS™ データ・セットとの間でファイルを移動する
こともできます。移動するファイルを複数指定する場合には、ターゲット (コマンド行の最
後のパス名) はディレクトリーまたは区分データ・セットのいずれかでなけ
ればなりません。ターゲットが MVS 区分データ・セットの場合、ソースを UNIX ディレクトリ
ーにすることはできません。
mv は世代別データ・グループ (GDG) 間の移動をサポートしていません。
これらの MVS データ・セットを使用するには、
実際のデータ・セット名を指定する必要があります。また、mv は一時 PDSE へのコピーもサポートしていません。
レコードを移動するとき、ストリング "¥n" はストリング "¥n" と同様に移動さ
れます。すなわち、両方とも "¥n" として読み戻されます。ここで、"¥n" は
、z/OS XL C++ が単一ブランクを含むレコードをファイルに書き込むことを示
します (z/OS XL C/C++ のデフォルトの動作です)。
出力内の他のブランクはすべてブランクとして読み戻され、空の (長さがゼ
ロの) レコードは入力では無視されます。ただし、mv の呼び出し前に
環境変数 _EDC_ZERO_RECLEN が Y に
設定されていれば、空のレコードは単一改行として扱われ、無視されません。
また、_EDC_ZERO_RECLEN が Y に設定されていれば、
単一改行は空のレコードしてファイルに書き込まれ、単一ブランクは " ¥n" で表されます。
ファイルは、そのファイルを含むディレクトリーがスティッキー・ビットを
オンに切り換えていない限り、そのディレクトリーへの書き込み許可を持つ
任意のユーザーにより移動できます。ファイルが、スティッキー・ビットがオンのディレクトリーにある場合は、ファイル所有者またはスーパーユーザーだけがそのファイルを移動できます。
以下を移動できます。
- あるファイルを作業ディレクトリーの別のファイルへ
- あるファイルを別のディレクトリーの新しいファイルへ
- ディレクトリーとファイルのセットをファイル・システムの別の場所へ
- UNIX ファイルを MVS データ・セットへ
- MVS データ・セットをファイル・システムへ
- MVS データ・セット間で
オプション
- –A
- すべての接尾部 (最初のピリオドからターゲットの終わりまで) を切
り捨てることを指定します。–A は、–M および –C オプションに優先しま
す。–A が最後に指定されたオプションであると、–S は
オフになります。
- –B
- 移動するデータにバイナリー・データが含まれていることを指定し
ます。–B を指定すると、mv は、DBCS データの <改行> 文
字または特殊文字を考慮せずに動作します (この種の動作は、UNIX システム
での移動に特有のものです)。–B は、
–F、–X、
および –T と互いに排他的です。これらのオプションを複数指定すると、エラーになります。
- –C
- MVS データ・セット・メンバーの制約に合わせてファイル名を 8 文字
で切り捨てることを指定します。
- –F format
- 移動するときにファイルをバイナリー、テキスト、またはレコード・ファイル・フォーマットのどちらで扱うかを指定します。
テキスト・ファイルの場合は行の終わり区切り文字を指定します。また、ソースが MVS データ・セットで、ターゲットが UNIX ファイルであ
る場合のみ、ファイル・フォーマットを format に設定します。UNIX から UNIX への操作のためのファイル・フォーマットは、cp のみによって設定されます。
テキスト・ファイルの場合、UNIX から MVS への移動では、行の終わり区
切り文字は取り除かれます。
MVS から
UNIX への移動では、
行の終わり区切り文字が追加されます。
(コード・ページ IBM-1047 は、行の終わり区切り文字の有無を調べるために使用されます。) レコード・ファイル・フォーマットは、バイナリー・ファイルのように扱われます。
–F は、
–B、–X、および –T と互いに排他的です。–F と共にこれらのオプション
の 1 つを指定すると、エラーになります。–F を 2 回以上指定すると、最後に指定された –F が使
用されます。
format には、以下を指定できます。
- not
- 指定されていません
- bin
- バイナリー・データ
- rec
- レコード。(ファイル・データは、接頭部の付いたレコードから成ります。レコードの接頭部には、後に続くレコードの長さが含まれます。シェル・コマンドの観点からは、このフォーマットのファイルはバイナリー・ファイルのように扱われます。)
あるいは、以下のテキスト・データ区切り文字。
- nl
- 改行文字
- cr
- キャリッジ・リターン
- lf
- 改行 (LF)
- crlf
- キャリッジ・リターン改行
- lfcr
- 改行キャリッジ・リターン
- crnl
- キャリッジ・リターン改行文字
- –f
- 既存の UNIX 宛先ファイルに上書きするかどうかを尋ねません。 yes が応答されたかのように自動的に処理します。–f および –i を両方とも指定した場合、mv は
、コマンド行に最後に現れたオプションを使用します。
- –i
- UNIX ターゲットに移動するとき、既存ファイルを
上書きする前に常にプロンプトを出しますが、許可を持っていない場合はフ
ァイルを上書きしません。–f および –i を両方とも指定した場合、mv は
、コマンド行に最後に現れたオプションを使用します。
- –M
- UNIX ファイルとデータ・セット・メンバーの間で移動するときに、フ
ァイル名の特定の文字を変換するように指定します。文字は次のように変換されます。
- UNIX での _ (下線) は、MVS データ・セット・メンバーでは @ に変換されます。また
、その逆も同様です。
- . UNIX の . (ピリオド) は、
MVS データ・セット・メンバーでは # に変換されます。また、その逆も同様です。
- UNIX の – (ダッシュ) は、
MVS データ・セット・メンバーの $ に変換されます。
また、その逆も同様です。
- –P params
- 順次データ・セット (まだ存在しない場合) を作成するために必要な
パラメーターを指定します。RECFM、LRECL、BLKSIZE、および SPACE を、fopen() 関数が
使用する形式で指定することができます。
SPACE=(units,(primary,secondary) ここで、units には、次の値を使用できます。
- BLKSIZE を示す任意の正の整数
- CYL (大文字小文字混合)
- TRK (大文字小文字混合)。例えば、以下のとおりです。
SPACE=(500,(100,500)) units, primary, secondary
SPACE=(500,100) units and primary only
これらのパラメーターの指定方法については、「z/OS XL C/C++ プログラミング・ガイド」を参照してください。
注: - fopen() 引数 LRECL は、固定長レコードの場合は長さを、可変長レコードの場合は最大長を、バイト単位で指定します。
- BLKSIZE は、レコードの物理ブロックの最大長をバイト単位で指定します。
- RECFM は、データ・セットのレコード・フォーマットを指し、SPACE は、MVS データ・
セットのスペース属性を示します。
- –R (UNIX 間のみ)
- ディレクトリーとそのすべての内容 (ファイル、サブディレクトリー、サブディレクトリー内のファイル、など) を移動します。例えば、以下のとおりです。
mv –R dir1 dir2
は、dir1 の全内容を dir2/dir1 に
移動します。mv は、必要なディレクトリーをすべて作成します。
- –r (UNIX 間のみ)
- –R と同等です。
- –S d=suffix|a=suffix
-
- d=suffix
指定された接尾部をファイルから除去します。
- a=suffix
指定された接尾部をファイルに追加します。
–S は、–M および –C に優先します。
また、–A オプションをオフにします (–S が、指定された最後
のオプションである場合)。
- –T
- 移動するデータにテキスト・データが含まれていることを指定します。テキスト・データの取り扱いについては、使用上の注意を参照してください。このオプションは、IBM–1047 行の終わり区切り文字を探すもので、–F、–X、および –B と互いに排他的です。これらのオプションを複数指定すると、エラーになります。
注: –T は、UNIX ファイル・システム間での移動のときは無
視されます。
- –U
- MVS データ・セット・メンバーから UNIX ファイルへ移動するとき
、ファイル名を大文字のまま保持します。デフォルトでは、ファイル名は小文字にされます。
- –v
- 詳細
- -W seqparms=params
- 順次データ・セット (まだ存在しない場合) を作成するために必要な
パラメーターを指定します。RECFM、LRECL、BLKSIZE、および SPACE を、fopen() 関数が
使用する形式で指定することができます。
SPACE=(units,(primary,secondary) ここで、units には、次の値を使用できます。
- BLKSIZE を示す任意の正の整数
- CYL (大文字小文字混合)
- TRK (大文字小文字混合)。例えば、以下のとおりです。
SPACE=(500,(100,500)) units, primary, secondary
SPACE=(500,100) units and primary only
これらのパラメーターの指定方法については、「z/OS XL C/C++ プログラミング・ガイド」を参照してください。
注: fopen() 引数: LRECL は、固定長レコードの場合は長さを、可変長レコードの場合は最大長を、バイト単位で指定します。BLKSIZE は、レコードの物理ブロックの最大長をバイト単位で指定します。
RECFM は、データ・セットのレコード・フォーマットを指し、SPACE は、MVS データ・
セットのスペース属性を示します。
このオプションは、-P params と同じです。
- –X
- 移動するデータが実行可能であることを指定します。–F、–T、または –B と一緒に使用することはで
きません。
- -Z
- ターゲット上での ACL またはファイル・タグの設定時に、エラー・メッセージを表示しないことを
指定します。戻りコードはゼロとなります。mv は、可能であれば、ACL の保存を試みます。ファイル・システムが ACL をサポートしない場合や
ファイルを MVS に移動している場合には、ACL は保存されません。デフォルトのファイル・タグについては、
mv での自動変換とファイル・タグの動作を参照してください。
- –O u | c=codeset
- ソースおよびターゲット・ファイルに関する自動変換を可能にします。
- –O u
- ターゲットが存在していて、空でないかまたはすでにタグ付きでもない場合、mv は
ターゲットが自動変換の候補になるためにターゲットのタグを変更しません。
新規のターゲットと既存のタグ付けされていない空ファイルに対しては、このオプションは有効ではなく、mv はデフォルトと同様に機能します。
デフォルトの動作については、mv での自動変換とファイル・タグの動作を参照してください。
mv を使用して UNIX ファイルから MVS データ・セットに移動する場合、ソースがタグ付きテキスト・ファイルであれば、そのファイルは自動変換の候補となります。
MVS からまたは MVS へ実行可能ファイルを移動するのに mv を使用する場合、ソースとターゲットの両方に対して自動変換が使用不可となります。
- –O c=codeset
- mv にこのオプションを指定したときの動作については、mv での自動変換とファイル・タグの動作を参照してください。
codeset は、システムに認識されているコード・セット名かコード化数字セット ID (CCSID) のいずれかです。コード・セット名が存在する場合、その名前に関連付けられている数値 CCSID が使用されます。コマンド iconv
-l は、既存の CCSID とそれらに対応するコード・セット名をリストすることに留意してください。
mv はタグをテキストまたはコード・セットに設定できない場合、テキスト・ファイルの破壊を防止するために失敗します。
重要: 自動変換が
正しく設定されていないか、またはソースが正しくタグ付けされていない場合、ターゲットは
そのファイルの内容に一致しないタグのコード・セットで終わる可能性があります。
注: –F|B|T または X も指定されないと、mv はまず、示された MVS データ・セットのフォーマットを検
査してから、ファイルのタイプを判別しようと試みます。
mv での自動変換とファイル・タグの動作
次の表は、
mv コマンドで
–O オプションが指定されているかどうかに応じて異なるソースおよびターゲットのシナリオにおけるファイル・タグと自動変換の動作を示しています。
表 1. mv での自動変換とファイル・タグの動作: ファイルからファイルへの移動 |
デフォルト (-O オプションを指定しない場合) |
-O u オプションを指定する場合 |
-O c=codeset オプションを指定する場合 |
ターゲット・ファイル・システムがファイル・タグの設定をサポートする場合… |
ターゲット・ファイル・システムがファイル・タグの設定をサポートしない場合 (例: NFS)… |
ファイル・タグ |
ソース・ファイルと同じようにターゲット・ファイルがタグ付けされます。 |
- 既存ターゲットのタグは変更されません。
- ファイル・システムの属性に従って新規ターゲットがタグ付きで作成されます (MOUNT パラメーターは TAG を指定できます)。
|
ターゲットのタグは変更されません。 ソースまたはターゲット・ファイル (あるいは両方) の txtflag が TEXT でタグ付けされている場合、そのソースまたはターゲットは自動変換の候補になります
|
ターゲットの txtflag が TEXT に設定され、そのコード・セットは codeset に設定されます。 |
自動変換 |
ソースとターゲット・ファイルで使用不可 |
ソースとターゲット・ファイルで許可 |
表 2. mv での自動変換とファイル・タグの動作: MVS データ・セットへのファイルへの移動 |
デフォルト (-O オプションを指定しない場合) |
-O u オプションを指定する場合 |
-O c=codeset オプションを指定する場合 |
ソースがテキストまたはバイナリーの場合 |
ファイル・タグ |
ターゲット・データ・セットには適用されません |
自動変換 |
ソース・ファイルで使用不可 |
ソース・ファイルで許可 注: ソース・ファイルの txtflag が TEXT でタグ付けされている場合、そのソース・ファイルは自動変換の候補になります。
|
ソース・ファイルで使用不可 |
ソースが実行可能ファイルの場合 |
ファイル・タグ |
ターゲット・データ・セットには適用されません |
自動変換 |
ソース・ファイルで使用不可 |
制約と要件
一般要件は、次のとおりです。
- MVS データ・セット名を指定するには、名前の前にダブルスラッシュ
(//) を付けます。例えば、完全修飾データ・セット名 'turbo.gammalib' および
'turbo.gammalib(pgm1)' を指定するには、次のように入力します。
"//'turbo.gammalib'"
"//'turbo.gammalib(pgm1)'"
完全修飾でないデータ・セット名にも、同じ要件が適用されます。//turbo
- PDS (区分データ・セット) または PDSE (拡張区分データ・セッ
ト) の場合、シェルによって構文解析されないようにするためには、名前を引用符
で囲むか、または最小限、括弧をエスケープする必要があります。例えば、'turbo(pgm1)' を指定するには、次のように引用符で囲むことが
できます。
"//turbo(pgm1)"
または、次のように括弧をエスケープすることができます。//turbo¥(pgm1¥)
上記に示したように、完全修飾名は単一引用符で囲む必要があります (TSO 内で行われるのと同じです)。単一引用符がシェルによって解釈されないようにするためには、単一引用符
をエスケープするか、または名前を正規の引用符内に入れなければなりません。'turbo.gammalib' の例を参照してください。
- UNIX ファイルをソースとして指定したときに、MVS データ・セット (タ
ーゲット) が存在しないと、順次データ・セットが作成されます。区分データ・セットが存在する場合は、UNIX ファイルは区分データ・セット・メンバーに移動されます。
- ソースが MVS データ・セットで、ターゲットが UNIX ディレクトリーの
場合は、その UNIX ディレクトリーが存在していなければなりません。
- ターゲットが区分データ・セットである場合は、ソースとして、UNIX デ
ィレクトリー、区分データ・セット、または順次データ・セットを使用する
ことはできません。
- 区分データ・セットからすべてのメンバーを移動するには、ソー
スとしてその区分データ・セットを指定し、ターゲットとして UNIX ディレ
クトリーを指定することができます。
MVS データ・セット名に関する制限: - データ・セット名には英大文字 (A から Z) だけを含めることができま
す。小文字は、MVS データ・セットへの移動中に大文字に変換されます。
- データ・セット名には、数字 0 から 9 と特殊文字 @、#、および $ を含める
ことができます。
- データ・セット名を数字で始めることはできません。
- データ・セット・メンバー名が 8 文字を超えてはなりません。ファイル名が 8 文字より長いか、または MVS データ・セット名に認められていない文字を使用している場合、ファイルは移動されません。–C オプションを使用すれば、名前
を 8 文字に切り捨てることができます。
制限: UNIX から MVS データ・セットへ: - 未定義レコード・フォーマットの順次 MVS データ・セットを指定すると、ファ
イルはバイナリーとして移動されます。
- 未定義レコード・フォーマットの PDSE を指定した場合、ファイルがどんなフォーマットで移
動されるかは、正常に移動された最初のファイルによって決まり
ます。PDSE では混合は許可されないことに注意してください。したがって、正常に移動された最初のファイルが実行可能であると、PDSE は
プログラム・オブジェクトだけを持つことになり、他のファイルはすべて
失敗します。ただし、最初のファイルがデータであれば、すべてのフ
ァイルはバイナリーとして移動されます。
- 未定義レコード・フォーマットの PDS を指定した場合、UNIX 実行可能
は PDS ロード・モジュールとして保管されます。他のファイルはすべてバイナリーとして移動されます。
- 可変長または固定長レコードのいずれかの MVS データ・セットを指定し
たときに、ファイル・フォーマットを設定していなければ、テキスト・ファイルはテキ
ストとして、バイナリーはバイナリーとして、実行可能はバイナリーとして
、それぞれ移動されます。(IBM-1047 行の終わり区切り文字がデータ内で検出されます。)
- ファイル・フォーマットを設定した場合は、設定値を使用して、データが
バイナリー、テキスト、またはレコード・ファイル・フォーマットかが判別されます。
注:
- UNIX ファイルが存在しない場合は、コピーするデータがバイナリーまたはテキストであるか関係なく、次の 666 モード値を使用して UNIX ファイルが作成されます。
666 mode value: owner(rw-) group(rw-) other(rw-)
コピーするデータが PDS または PDSE に常駐する不定形式レコード・フォーマットのシェル・スクリプトまたは実行可能ファイルである場合、次の 777 モード値を使用して UNIX ファイルが作成されます。
777 mode value: owner(rwx) group(rwx) other(rwx)
- UNIX ファイルが存在し、ファイル・フォーマットが設定されていると、mv はファ
イルをそのフォーマットで移動します。その他の場合、次のようになります。
- ロード・モジュール (PDS) は UNIX 実行可能モジュールとして保管され、プログラ
ム・オブジェクト (PDSE) は、実行可能モジュールと同じであるので移動されます。
- 未定義レコード・フォーマットのデータ・セット内のデータは、データがプログラム
・オブジェクトまたはロード・モジュールでなければ、バイナリーとして移
動されます。
- 固定長または可変長レコードのデータ・セット内で見つかったデータは
、テキストとして移動されます。(IBM-1047 行の終わり区切り文字がデータ内で検出されます。)
制限: MVS から MVS へ: - –A、–C、–f、
および –S オプションは無視されます。
- ターゲットとソースが未定義レコード・フォーマットである (どちらも順次データ
・セットでない) 場合、mv はデータをロード・モジュールとして
移動しようとします。失敗すると、mv はデータをバイナリーとし
て移動します。
- ターゲットとソースが未定義レコード・フォーマットであり、いずれか一方が順次デ
ータ・セットであると、mv はデータをバイナリーとして移動しま
す。
- ソースが固定長または可変長レコードであり、ターゲットが未定義レコード・フォーマットである場合、mv はデータをバイナリーとして移動しま
す。
- ソースが未定義レコード・フォーマットであり、ターゲットが固定長または可変長レ
コードである場合、mv はデータをバイナリーとして移動しま
す。
- ソースとターゲットの両方が固定長または可変長レコードである場合は
、mv はデータをテキストとして移動します。
制限: 実行可能から PDS への移動: - PDS は、プログラム管理機能を組み込んだロード・モジュールを保管す
ることができません。
- c89 は、デフォルトでは、最高レベルのプログラム管理を使用
してオブジェクトを作成します。
- ロード・モジュールを PDS に移動する計画がある場合は、リンケージ・
エディターと互換性のある出力を作成するプリリンカーを使用することができ
ます。リンケージ・エディター生成の出力は常に PDS に保管することができます。
表 3 は、
mv でオプションを正しく使用するための早見表です。
表 3. mv で許可されるオプション: ファイルからファイルへ、
およびファイル (複数ファイル) からディレクトリーへソース/ターゲット |
許可されるオプション |
無視されるオプション |
失敗するオプション |
UNIX ファイル/UNIX ファイル |
Ffi |
ABCMPSTUX |
|
UNIX ファイル/順次データ・セット |
BFiPT |
ACfMSU |
X |
UNIX ファイル/PDS または PDSE メンバー |
BFiTX |
ACfMPSU |
|
順次データ・セット/UNIX ファイル |
BFfiTU |
ACMPS |
X |
順次データ・セット/順次データ・セット |
BFiPT |
ACfMSU |
X |
順次データ・セット/PDS または PDSE メンバー |
BFiT |
ACfMPSU |
X |
PDS または PDSE メンバー/UNIX ファイル |
BFfiTUX |
ACMPS |
|
PDS または PDSE メンバー/順次データ・セット |
BFiPT |
ACfMSU |
X |
PDS または PDSE メンバー/PDS または PDSE メンバー |
BFiTX |
ACfMPSU |
|
UNIX ファイル/UNIX ディレクトリー |
Fi |
ABCFMPSTUX |
|
PDSE または PDSE メンバー/UNIX ディレクトリー |
BFfiMSTUX |
ACP |
|
UNIX ファイル/区分データ・セット |
ABCFiMSTX |
fPU |
|
PDS または PDSE メンバー/区分データ・セット |
BFiTX |
ACfMPSU |
|
UNIX ディレクトリー/UNIX ディレクトリー |
fi |
ABCFMPSTUX |
|
区分データ・セット/UNIX ディレクトリー |
ABCFfiMSTUX |
P |
|
次の表は、mv を使用して許可される移動の種類を示しています。
表 4. mv で許可される移動: ファイルからファイルへソース |
ターゲット |
許可 |
UNIX ファイル、順次データ・セット、
または区分データ・セット・メンバー |
UNIX ファイル、順次データ・セット、
または区分データ・セット・メンバー |
Yes |
UNIX ディレクトリー (dir) |
UNIX ディレクトリー (dir2 が存在する) |
Yes (結果は dir2/dir1/.. に見つかる). |
UNIX ディレクトリー (dir) |
UNIX ディレクトリー (dir2 が存在しない) |
Yes (結果は dir2/... に見つかる). |
区分データ・セット |
UNIX ディレクトリー (dir) 。データ・セットの各メンバーの結果は dir に移動されます。 |
Yes |
UNIX ディレクトリー |
区分データ・セット |
No |
区分データ・セット |
区分データ・セット |
No |
UNIX ファイル、UNIX ディレクトリー、または区分データ・セット・メンバー |
UNIX ディレクトリー |
Yes |
区分データ・セット・メンバー |
区分データ・セット (存在していなければならない) |
Yes |
表 5. mv で許可される移動: ファイル (複数ファイル) からディレクトリーへソース |
ターゲット |
許可 |
UNIX ファイルまたは区分データ・セット・メンバーの任意の組み合わせ |
UNIX ディレクトリーまたは区分データ・セット |
Yes |
UNIX ディレクトリー、
区分データ・セット、順次データ・セットの任意の組み合わせ |
区分データ・セット |
No |
順次データ・セット |
UNIX ディレクトリー |
No |
UNIX ディレクトリー、
UNIX ファイル、
区分データ・セット、区分データ・セット・メンバーの任意の組み合わせ |
UNIX ディレクトリー |
Yes |
例
- 存在しない順次ターゲットのために –P params を指
定するには、次のように入力します。
mv -P "RECFM=U,space=(500,100)" file "//'turbo.gammalib'"
上記の mv コマンドは、以下と同等です。 mv -W "seqparms='RECFM=U,space=(500,100)'" file "//'turbo.gammalib'"
- ファイル f1 を完全修飾順次データ・セット 'turbo.gammalib' に移動し、それをバイナリーとして扱うには、次
のように入力します。
mv -F bin f1 "//'turbo.gammalib'"
- 完全修飾 PDS 'turbo.gammalib' のすべてのメンバーを既存
の UNIX ディレクトリー dir に移動するには、次のように入
力します。
mv "//turbo.gammalib'" dir
- UNIX ディレクトリー dir のすべてのファイルを既存の
PDS 'turbo.gammalib' に移動する前に .c 接尾部を取り除く
には、次のように入力します。
mv -S d=.c dir/* "//'turbo.gammalib'"
使用上の注意
UNIX から MVS へ
- UNIX から区分データ・セットへ移動するためには、mv を行
う前に、そのデータ・セットを割り当てておかなければなりません。
- MVS データ・セットが存在しない場合、mv は、可変長レコード・フォーマットの新しい順次データ・セットを割り当てます。
- テキスト・ファイルの場合、すべての <改行> 文字は移動中に取り
除かれます。<改行> 文字で終わるファイルの中の各行は、MVS データ・セットのレコ
ードに移動されます。ソース・ファイルに対してテキスト・ファイル・フォーマットを指定したか、またはテ
キスト・ファイル・フォーマットがすでに存在する場合は、<改行> ではなく、その
ファイル・フォーマットが行の終わり区切り文字として使用されます。mv は
データ内で IBM-1047 という行の終わり区切り文字を探すことに注意してください。
テキスト・ファイルを、未定義レコード・フォーマットの MVS データ・セットに移動す
ることはできません。
- 固定長レコード・フォーマットの MVS データ・セットの場合、レコード・サイズを
超えるいずれかの行が移動されると、mv は失敗し、エラー・メ
ッセージとエラー・コードを表示します。行がレコード・サイズより短い場合、レコードにはブランクが埋め込まれます。
- 可変長レコード・フォーマットの MVS データ・セットの場合は、最大レコード・サ
イズを超える行が移動されると、mv は失敗し、エラー・メッセ
ージとエラー・コードを表示します。レコード長は、その行の長さに設定されます。
- バイナリー・ファイルでは、移動されたデータはすべて保存されます。
- 固定長レコード・フォーマットの MVS データ・セットの場合、データはレコード長
に等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードにはブ
ランクが埋め込まれます。
- 可変長レコード・フォーマットの MVS データ・セットの場合、データは最大レコー
ド長に等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードの長さは、残されたデータの長さに等しくなります。
- 未定義レコード・フォーマットの MVS データ・セットの場合、データはブロック・サ
イズに等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードの長さは、残されたデータの長さに等しくなります。
- ロード・モジュールの場合、指定する区分データ・セットは未定義レコード・フォーマットでなければなりません。さもないと、実行可能は移動されません。
- 複数のファイル名が同じ場合、ファイルは以降の移動ごとに上書きされます。
- UNIX ファイル名に MVS データ・セットでは許可されない文字が含まれ
ていると、そのファイルは移動されません。UNIX ファイル名が 8 文字を超えている場合、そのファイルを MVS データ・
セット・メンバーに移動することはできません。(ファイル名の変換については、–ACMS オプションを参照してくだ
さい。)
- ファイルを、スパン・レコードを持つデータ・セットに移動すること
はできません。
- PDSE に、プログラム・オブジェクトとデータ・メンバーを混合させては
なりません。PDS では混合は許可されますが、お勧めできません。
- 外部リンクおよび FIFO などの特殊ファイルは、 MVS データ・セットに移動されません。
ただし、文字特殊ファイルは MVS データ・セットに移動できます。
- ファイルがシンボリック・リンクの場合、mv は、リンクその
ものではなく、解決されたファイルを移動します。
- UNIX ファイル属性は、MVS に移動すると失われます。ファイル属性を保持したい場合は、pax ユーティリティーを使用
する必要があります。
MVS から UNIX へ
- ターゲット UNIX ファイルが存在する場合、既存のデータは新
しいデータで上書きされます。ファイルのモードは変更されません (S_ISUID および S_ISGID ビットがオフになっている場合を除く)。
- 指定された UNIX ファイルが存在しない場合は、データがバイナリーまた
はテキストであれば、666 モード値を使用して作成されます (これは
umask に左右されます)。移動するデータがシェル・スクリプト
または実行可能の場合は、777 モード値を使用して UNIX ファイルが作成され
ます (umask に左右されます)。
- 可変長レコード・フォーマット RECFM(VB) または未定義レコード・フォーマット RECFM(U) の MVS データ・セットの場合、MVS から UNIX への移動時に末尾ブランクが保存されます。固定長レコード・フォーマットの MVS データ・セットの場合、MVS から UNIX への移動時に末尾ブランクは保存されません。
- MVS データ・セットを z/OS® UNIX ファイル・システムのテキスト・ファイルに移動すると、
<改行> 文字が各レコードの終わりに追加されます。レコードに末尾ブランクがある場合、<newline> 文字は末尾ブランクの後に追加されます。ファイル・フォーマット・オプションが指定された場合、またはターゲット・ファイルのファイル・フォーマットが設定されている場合には、<改行> 文字では
なく、そのファイル・フォーマットが行の終わり区切り文字として使用されます。
- MVS データ・セットを UNIX バイナリー・ファイルに移動した場合、<改行> 文字はレコードに追加されません。
- mv を使用して、スパン・レコード長を持つデータ・セット
を移動することはできません。
- z/OS XL C/C++ ランタイムでの制限のために、同じ名前と大/小文字を持つ MVS 順次データ・セットにファイル・システムからファイルを移動する場合は、ファイル・システム内のファイルの前に「./」を付ける必要があります。例えば、以下のとおりです。
mv ./SMPL.DATA "//''SMPL.DATA''"
ローカライズ
mv は、以下のローカライズ環境変数を使用します。
- LANG
- LC_ALL
- LC_COLLATE
- LC_CTYPE
- LC_MESSAGES
- LC_SYNTAX
- NLSPATH
詳しくは、ローカライズを参照してください。
環境変数
mv は、MVS データ・セットからレコードを移動したり、MVS データ・セット
にレコードを移動する際に、以下の環境変数を使用します。
- _EDC_ZERO_RECLEN
- mv を呼び出す前にこれが Y に設定されていると、空のレコ
ードは単一改行文字として扱われ、無視されません。また、単一改行は空のレコ
ードとしてファイルに書き込まれ、単一ブランクは "¥n" で表されます。レコードを移動するときにこの環境変数を設定しない場合、
ストリング "¥n" はストリング "¥n" と同様に移動されます。すなわち、
両方とも "¥n"として読み取りと書き込みが行われます。ここで "¥n" は、z/OS XL C/C++ が、
単一ブランクが入っているレコードをファイルに書き込むことを意味します (z/OS XL C/C++ のデフォルトの動作)。出力内の他のブランクは
すべてブランクとして読み戻され、空の (長さがゼロの) レコードは入力で
は無視されます。
終了値
- 0
- 正常終了
- 1
- 以下のいずれかによる失敗。
- 引数は末尾の / を持つが、ディレクトリーではなかった
- ファイルが見つからない
- 入力ファイルを読み取るために開くことができない
- 出力ファイルを作成または開くことができない
- 入力ファイルの読み取りエラー
- 出力ファイルへの書き込みエラー
- 入力ファイルと出力ファイルが同一である
- 入力ファイルのリンク解除ができない
- 入力ファイルの名前変更ができない
- –r オプションを使用しているときに、以下のようなリカバリー不能エラーが発生した
- ファイルにアクセスできない
- ディレクトリーを読み取れない
- ディレクトリーを除去できない
- ディレクトリーを作成できない
- ターゲットがディレクトリーではない
- ソースと宛先のディレクトリーが同じである
- 2
- 以下のいずれかによる失敗。
- コマンド行のオプションが正しくない
- コマンド行の引数が少なすぎる
- ターゲットはディレクトリーでなければならないが、そうでない
- ターゲット・デバイスにスペースがない
- 移動するデータを保持するメモリーがない
- ターゲット・ファイルを保持するためのディレクトリーを作成できない
メッセージ
以下の
エラー・メッセージが出される可能性があります。
- cannot allocate target string
- mv には、ターゲット・ファイルの名前を保持する
スペースがありません。mv にもっとスペースを与えるために、メモリーをいくらか解放してみてください。
- filename?
- ファイルを移動しようとしていますが、そのターゲット名のファイルはすでに存在し、そのファイルは読み取り専用です。既存のファイルに実際に上書きしたい場合は、y と入力し
、<Enter> を押します。
既存のファイルに上書きしたくない場合は、n と入力し
、<Enter> を押します。
- source name and target name are
identical
- ソースとターゲットが実際には同一のファイルです (例えば、リンクのために)。この場合、mv は何も行いません。
- unreadable directory name
- mv は指定されたディレクトリーを読み取れません。例えば、適切な許可を持っていないためです。
移植性
POSIX.2, X/Open 移植性ガイド, UNIX システム.
–R および –r オプションは、POSIX 標準の拡張です。