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++ プログラミング・ガイド」を参照してください。
注:- 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
指定された接尾部をファイルに追加します。
- d=suffix
- –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 はタグをテキストまたはコード・セットに設定できない場合、テキスト・ファイルの破壊を防止するために失敗します。
重要: 自動変換が 正しく設定されていないか、またはソースが正しくタグ付けされていない場合、ターゲットは そのファイルの内容に一致しないタグのコード・セットで終わる可能性があります。
mv での自動変換とファイル・タグの動作
デフォルト (-O オプションを指定しない場合) | -O u オプションを指定する場合 | -O c=codeset オプションを指定する場合 | ||
---|---|---|---|---|
ターゲット・ファイル・システムがファイル・タグの設定をサポートする場合… | ターゲット・ファイル・システムがファイル・タグの設定をサポートしない場合 (例: NFS)… | |||
ファイル・タグ | ソース・ファイルと同じようにターゲット・ファイルがタグ付けされます。 |
|
ターゲットのタグは変更されません。 ソースまたはターゲット・ファイル (あるいは両方) の txtflag が TEXT でタグ付けされている場合、そのソースまたはターゲットは自動変換の候補になります |
ターゲットの txtflag が TEXT に設定され、そのコード・セットは codeset に設定されます。 |
自動変換 | ソースとターゲット・ファイルで使用不可 | ソースとターゲット・ファイルで許可 |
デフォルト (-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 ディレ クトリーを指定することができます。
- データ・セット名には英大文字 (A から Z) だけを含めることができま す。小文字は、MVS データ・セットへの移動中に大文字に変換されます。
- データ・セット名には、数字 0 から 9 と特殊文字 @、#、および $ を含める ことができます。
- データ・セット名を数字で始めることはできません。
- データ・セット・メンバー名が 8 文字を超えてはなりません。ファイル名が 8 文字より長いか、または MVS データ・セット名に認められていない文字を使用している場合、ファイルは移動されません。–C オプションを使用すれば、名前 を 8 文字に切り捨てることができます。
- 未定義レコード・フォーマットの順次 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 行の終わり区切り文字がデータ内で検出されます。)
- –A、–C、–f、 および –S オプションは無視されます。
- ターゲットとソースが未定義レコード・フォーマットである (どちらも順次データ ・セットでない) 場合、mv はデータをロード・モジュールとして 移動しようとします。失敗すると、mv はデータをバイナリーとし て移動します。
- ターゲットとソースが未定義レコード・フォーマットであり、いずれか一方が順次デ ータ・セットであると、mv はデータをバイナリーとして移動しま す。
- ソースが固定長または可変長レコードであり、ターゲットが未定義レコード・フォーマットである場合、mv はデータをバイナリーとして移動しま す。
- ソースが未定義レコード・フォーマットであり、ターゲットが固定長または可変長レ コードである場合、mv はデータをバイナリーとして移動しま す。
- ソースとターゲットの両方が固定長または可変長レコードである場合は 、mv はデータをテキストとして移動します。
- PDS は、プログラム管理機能を組み込んだロード・モジュールを保管す ることができません。
- c89 は、デフォルトでは、最高レベルのプログラム管理を使用 してオブジェクトを作成します。
- ロード・モジュールを PDS に移動する計画がある場合は、リンケージ・エディターと互換性のある出力を作成するプリリンカーを使用することができます。リンケージ・エディター生成の出力は常に PDS に保管することができます。
ソース/ターゲット | 許可されるオプション | 無視されるオプション | 失敗するオプション |
---|---|---|---|
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 を使用して許可される移動の種類を示しています。
ソース | ターゲット | 許可 |
---|---|---|
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 |
ソース | ターゲット | 許可 |
---|---|---|
UNIX ファイルまたは区分データ・セット・メンバーの任意の組み合わせ | UNIX ディレクトリーまたは区分データ・セット | Yes |
UNIX ディレクトリー、 区分データ・セット、順次データ・セットの任意の組み合わせ | 区分データ・セット | No |
順次データ・セット | UNIX ディレクトリー | No |
UNIX ディレクトリー、 UNIX ファイル、 区分データ・セット、区分データ・セット・メンバーの任意の組み合わせ | UNIX ディレクトリー | Yes |
例
- 存在しない順次ターゲットのために –P params を指
定するには、次のように入力します。
上記の mv コマンドは、以下と同等です。mv -P "RECFM=U,space=(500,100)" file "//'turbo.gammalib'"
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''"
ローカライズ
- LANG
- LC_ALL
- LC_COLLATE
- LC_CTYPE
- LC_MESSAGES
- LC_SYNTAX
- NLSPATH
詳細については、ローカライズを参照してください。
環境変数
- _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 標準の拡張です。
関連情報
cp、cpio、rm