mv - ファイルまたはディレクトリーを名前変更または移動する

形式

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++ プログラミング・ガイド」を参照してください。

注:
  1. fopen() 引数 LRECL は、固定長レコードの場合は長さを、可変長レコードの場合は最大長を、バイト単位で指定します。
  2. BLKSIZE は、レコードの物理ブロックの最大長をバイト単位で指定します。
  3. 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 でタグ付けされている場合、そのソース・ファイルは自動変換の候補になります。
ソース・ファイルで使用不可
ソースが実行可能ファイルの場合
ファイル・タグ ターゲット・データ・セットには適用されません
自動変換 ソース・ファイルで使用不可

制約と要件

一般要件は、次のとおりです。

  1. MVS データ・セット名を指定するには、名前の前にダブルスラッシュ (//) を付けます。例えば、完全修飾データ・セット名 'turbo.gammalib' および 'turbo.gammalib(pgm1)' を指定するには、次のように入力します。
    "//'turbo.gammalib'"
    "//'turbo.gammalib(pgm1)'"
    完全修飾でないデータ・セット名にも、同じ要件が適用されます。
    //turbo
  2. PDS (区分データ・セット) または PDSE (拡張区分データ・セッ ト) の場合、シェルによって構文解析されないようにするためには、名前を引用符 で囲むか、または最小限、括弧をエスケープする必要があります。例えば、'turbo(pgm1)' を指定するには、次のように引用符で囲むことが できます。
    "//turbo(pgm1)"  
    または、次のように括弧をエスケープすることができます。
    //turbo¥(pgm1¥)

    上記に示したように、完全修飾名は単一引用符で囲む必要があります (TSO 内で行われるのと同じです)。単一引用符がシェルによって解釈されないようにするためには、単一引用符 をエスケープするか、または名前を正規の引用符内に入れなければなりません。'turbo.gammalib' の例を参照してください。

  3. UNIX ファイルをソースとして指定したときに、MVS データ・セット (タ ーゲット) が存在しないと、順次データ・セットが作成されます。区分データ・セットが存在する場合は、UNIX ファイルは区分データ・セット・メンバーに移動されます。
  4. ソースが MVS データ・セットで、ターゲットが UNIX ディレクトリーの 場合は、その UNIX ディレクトリーが存在していなければなりません。
  5. ターゲットが区分データ・セットである場合は、ソースとして、UNIX デ ィレクトリー、区分データ・セット、または順次データ・セットを使用する ことはできません。
  6. 区分データ・セットからすべてのメンバーを移動するには、ソー スとしてその区分データ・セットを指定し、ターゲットとして UNIX ディレ クトリーを指定することができます。
MVS データ・セット名に関する制限:
  • データ・セット名には英大文字 (A から Z) だけを含めることができま す。小文字は、MVS データ・セットへの移動中に大文字に変換されます。
  • データ・セット名には、数字 0 から 9 と特殊文字 @、#、および $ を含める ことができます。
  • データ・セット名を数字で始めることはできません。
  • データ・セット・メンバー名が 8 文字を超えてはなりません。ファイル名が 8 文字より長いか、または MVS データ・セット名に認められていない文字を使用している場合、ファイルは移動されません。–C オプションを使用すれば、名前 を 8 文字に切り捨てることができます。
制限: UNIX から MVS データ・セットへ:
  1. 未定義レコード・フォーマットの順次 MVS データ・セットを指定すると、ファ イルはバイナリーとして移動されます。
  2. 未定義レコード・フォーマットの PDSE を指定した場合、ファイルがどんなフォーマットで移 動されるかは、正常に移動された最初のファイルによって決まり ます。PDSE では混合は許可されないことに注意してください。したがって、正常に移動された最初のファイルが実行可能であると、PDSE は プログラム・オブジェクトだけを持つことになり、他のファイルはすべて 失敗します。ただし、最初のファイルがデータであれば、すべてのフ ァイルはバイナリーとして移動されます。
  3. 未定義レコード・フォーマットの PDS を指定した場合、UNIX 実行可能 は PDS ロード・モジュールとして保管されます。他のファイルはすべてバイナリーとして移動されます。
  4. 可変長または固定長レコードのいずれかの MVS データ・セットを指定し たときに、ファイル・フォーマットを設定していなければ、テキスト・ファイルはテキ ストとして、バイナリーはバイナリーとして、実行可能はバイナリーとして 、それぞれ移動されます。(IBM-1047 行の終わり区切り文字がデータ内で検出されます。)
  5. ファイル・フォーマットを設定した場合は、設定値を使用して、データが バイナリー、テキスト、またはレコード・ファイル・フォーマットかが判別されます。
注:
  1. 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)
  2. UNIX ファイルが存在し、ファイル・フォーマットが設定されていると、mv はファ イルをそのフォーマットで移動します。その他の場合、次のようになります。
    • ロード・モジュール (PDS) は UNIX 実行可能モジュールとして保管され、プログラ ム・オブジェクト (PDSE) は、実行可能モジュールと同じであるので移動されます。
    • 未定義レコード・フォーマットのデータ・セット内のデータは、データがプログラム ・オブジェクトまたはロード・モジュールでなければ、バイナリーとして移 動されます。
    • 固定長または可変長レコードのデータ・セット内で見つかったデータは 、テキストとして移動されます。(IBM-1047 行の終わり区切り文字がデータ内で検出されます。)
制限: MVS から MVS へ:
  1. –A–C–f、 および –S オプションは無視されます。
  2. ターゲットとソースが未定義レコード・フォーマットである (どちらも順次データ ・セットでない) 場合、mv はデータをロード・モジュールとして 移動しようとします。失敗すると、mv はデータをバイナリーとし て移動します。
  3. ターゲットとソースが未定義レコード・フォーマットであり、いずれか一方が順次デ ータ・セットであると、mv はデータをバイナリーとして移動しま す。
  4. ソースが固定長または可変長レコードであり、ターゲットが未定義レコード・フォーマットである場合、mv はデータをバイナリーとして移動しま す。
  5. ソースが未定義レコード・フォーマットであり、ターゲットが固定長または可変長レ コードである場合、mv はデータをバイナリーとして移動しま す。
  6. ソースとターゲットの両方が固定長または可変長レコードである場合は 、mv はデータをテキストとして移動します。
制限: 実行可能から PDS への移動:
  1. PDS は、プログラム管理機能を組み込んだロード・モジュールを保管す ることができません。
  2. c89 は、デフォルトでは、最高レベルのプログラム管理を使用 してオブジェクトを作成します。
  3. ロード・モジュールを 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

  1. 存在しない順次ターゲットのために –P params を指 定するには、次のように入力します。
    mv -P "RECFM=U,space=(500,100)" file "//'turbo.gammalib'"
    上記の mv コマンドは、以下と同等です。
     mv -W "seqparms='RECFM=U,space=(500,100)'" file "//'turbo.gammalib'"
  2. ファイル f1 を完全修飾順次データ・セット 'turbo.gammalib' に移動し、それをバイナリーとして扱うには、次 のように入力します。
    mv -F bin f1 "//'turbo.gammalib'"
  3. 完全修飾 PDS 'turbo.gammalib' のすべてのメンバーを既存 の UNIX ディレクトリー dir に移動するには、次のように入 力します。
    mv "//turbo.gammalib'" dir
  4. UNIX ディレクトリー dir のすべてのファイルを既存の PDS 'turbo.gammalib' に移動する前に .c 接尾部を取り除く には、次のように入力します。
    mv -S d=.c dir/* "//'turbo.gammalib'"

使用上の注意

UNIX から MVS

  1. UNIX から区分データ・セットへ移動するためには、mv を行 う前に、そのデータ・セットを割り当てておかなければなりません。
  2. MVS データ・セットが存在しない場合、mv は、可変長レコード・フォーマットの新しい順次データ・セットを割り当てます。
  3. テキスト・ファイルの場合、すべての <改行> 文字は移動中に取り 除かれます。<改行> 文字で終わるファイルの中の各行は、MVS データ・セットのレコ ードに移動されます。ソース・ファイルに対してテキスト・ファイル・フォーマットを指定したか、またはテ キスト・ファイル・フォーマットがすでに存在する場合は、<改行> ではなく、その ファイル・フォーマットが行の終わり区切り文字として使用されます。mv は データ内で IBM-1047 という行の終わり区切り文字を探すことに注意してください。

    テキスト・ファイルを、未定義レコード・フォーマットの MVS データ・セットに移動す ることはできません。

    • 固定長レコード・フォーマットの MVS データ・セットの場合、レコード・サイズを 超えるいずれかの行が移動されると、mv は失敗し、エラー・メ ッセージとエラー・コードを表示します。行がレコード・サイズより短い場合、レコードにはブランクが埋め込まれます。
    • 可変長レコード・フォーマットの MVS データ・セットの場合は、最大レコード・サ イズを超える行が移動されると、mv は失敗し、エラー・メッセ ージとエラー・コードを表示します。レコード長は、その行の長さに設定されます。
  4. バイナリー・ファイルでは、移動されたデータはすべて保存されます。
    • 固定長レコード・フォーマットの MVS データ・セットの場合、データはレコード長 に等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードにはブ ランクが埋め込まれます。
    • 可変長レコード・フォーマットの MVS データ・セットの場合、データは最大レコー ド長に等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードの長さは、残されたデータの長さに等しくなります。
    • 未定義レコード・フォーマットの MVS データ・セットの場合、データはブロック・サ イズに等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードの長さは、残されたデータの長さに等しくなります。
  5. ロード・モジュールの場合、指定する区分データ・セットは未定義レコード・フォーマットでなければなりません。さもないと、実行可能は移動されません。
  6. 複数のファイル名が同じ場合、ファイルは以降の移動ごとに上書きされます。
  7. UNIX ファイル名に MVS データ・セットでは許可されない文字が含まれ ていると、そのファイルは移動されません。UNIX ファイル名が 8 文字を超えている場合、そのファイルを MVS データ・ セット・メンバーに移動することはできません。(ファイル名の変換については、–ACMS オプションを参照してくだ さい。)
  8. ファイルを、スパン・レコードを持つデータ・セットに移動すること はできません。
  9. PDSE に、プログラム・オブジェクトとデータ・メンバーを混合させては なりません。PDS では混合は許可されますが、お勧めできません。
  10. 外部リンクおよび FIFO などの特殊ファイルは、 MVS データ・セットに移動されません。 ただし、文字特殊ファイルは MVS データ・セットに移動できます。
  11. ファイルがシンボリック・リンクの場合、mv は、リンクその ものではなく、解決されたファイルを移動します。
  12. UNIX ファイル属性は、MVS に移動すると失われます。ファイル属性を保持したい場合は、pax ユーティリティーを使用 する必要があります。

MVS から UNIX

  1. ターゲット UNIX ファイルが存在する場合、既存のデータは新 しいデータで上書きされます。ファイルのモードは変更されません (S_ISUID および S_ISGID ビットがオフになっている場合を除く)。
  2. 指定された UNIX ファイルが存在しない場合は、データがバイナリーまた はテキストであれば、666 モード値を使用して作成されます (これは umask に左右されます)。移動するデータがシェル・スクリプト または実行可能の場合は、777 モード値を使用して UNIX ファイルが作成され ます (umask に左右されます)。
  3. 可変長レコード・フォーマット RECFM(VB) または未定義レコード・フォーマット RECFM(U) の MVS データ・セットの場合、MVS から UNIX への移動時に末尾ブランクが保存されます。固定長レコード・フォーマットの MVS データ・セットの場合、MVS から UNIX への移動時に末尾ブランクは保存されません。
  4. MVS データ・セットを z/OS® UNIX ファイル・システムのテキスト・ファイルに移動すると、 <改行> 文字が各レコードの終わりに追加されます。レコードに末尾ブランクがある場合、<newline> 文字は末尾ブランクの後に追加されます。ファイル・フォーマット・オプションが指定された場合、またはターゲット・ファイルのファイル・フォーマットが設定されている場合には、<改行> 文字では なく、そのファイル・フォーマットが行の終わり区切り文字として使用されます。
  5. MVS データ・セットを UNIX バイナリー・ファイルに移動した場合、<改行> 文字はレコードに追加されません。
  6. mv を使用して、スパン・レコード長を持つデータ・セット を移動することはできません。
  7. 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 標準の拡張です。

関連情報

cpcpiorm