ディレクトリーの除去 (RD)
| 実行可能場所: すべての環境 (*ALL) スレッド・セーフ: いいえ |
パラメーター 例 エラー・メッセージ |
ディレクトリーの除去 (RD)コマンドは,ディレクトリー内のすべてのオブジェクトがリンク解除され,ディレクトリーが以後使用されないときに,指定されたディレクトリーをシステムから除去します。除去するディレクトリーにオブジェクトが入っている場合には,このコマンドは任意指定ですべてのオブジェクトをリンク解除してからディレクトリーを削除します。ディレクトリーのすべてのオブジェクトをリンク解除する権限がユーザーにない場合には,そのユーザーが権限をもっているオブジェクトだけをリンク解除します。オブジェクトをリンク解除できない場合には,リンク解除できないディレクトリーおよびディレクトリー内のすべてのオブジェクトは除去されません。
このコマンドは,指定されたディレクトリーの場所,その内容,およびそのすべてのサブディレクトリーの内容が除去されるディレクトリー・ツリーの除去にも使用することができます。SUBTREE(*ALL)またはRMVLNK(*YES)が指定されている場合には,コマンドは,サブツリー内の可能な限りのオブジェクトを除去しようとします。除去できない各オブジェクトに対して,診断メッセージが送信されます。すべてのオブジェクトの処理が行われた時,エラーがあった場合にエスケープ・メッセージが送信されます。すべてのオブジェクトがエラーなしで除去された場合には,完了メッセージが送信されます。
ディレクトリー (DIR)パラメーターで指定されたか,あるいはサブツリーの処理中に見つかったシンボリック・リンク・オブジェクトを見つけた場合には,そのシンボリック・リンクをたどることはできません。
注: コマンド上でSUBTREE(*ALL)が指定されていた場合は,シンボリック・リンクが除去されます。
このコマンドはディレクトリーの除去 (RMVDIR)コマンドの別名で,次の代替コマンド名を使用して出すこともできます。
- RMDIR
- RMVDIR
統合ファイル・システム・コマンドの詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「統合ファイル・システム」トピック・コレクションを参照してください。
制約事項:
- "ルート" (/),QOPENSYS,およびユーザー定義ファイル・システムでは,指定されたディレクトリーに対するオブジェクト存在(*OBJEXIST)権限とその中のすべてのオブジェクトに対する*OBJEXIST権限が必要です。ディレクトリー内の1つ以上のオブジェクトに対する*OBJEXIST権限がない場合には,それらのオブジェクトはリンク解除されずディレクトリーは除去されません。
- "ルート" (/), QOPENSYS,およびユーザー定義ファイル・システムでは,除去するためには,親ディレクトリーも含め,空の状態でないすべてのディレクトリーに対する書き込み,実行(*WX)権限が必要です。
- QDLSファイル・システムでは,ディレクトリーに対する全(*ALL)権限とその親ディレクトリーに対する実行(*X)権限が必要です。
- 接頭部ディレクトリーに対する実行(*X)権限が必要です。
- その他のファイル・システムの権限要件については,System i機密保護解説書(SD88-5027)を参照してください。
- 次の1つ以上が真でない場合には,「制限された名前変更およびリンク解除」属性(この属性はS_ISVTXモード・ビットと同じ)がオンに設定されている"ルート" (/), QOPENSYS,またはユーザー定義ファイル・システム内のオブジェクト・リンクの名前を除去することはできません。
- ユーザーが,除去するオブジェクト・リンクの所有者である。
- ユーザーが,除去するディレクトリーの親オブジェクト・リンクの所有者である。
- ユーザーがすべてのオブジェクト(*ALLOBJ)特殊権限を持っている。
- ディレクトリーがジョブの現行ディレクトリーである場合には,それを除去することはできません。
- このコマンドを使用して,予約されているディレクトリーまたはライブラリーを削除することはできません。
- オブジェクトがQSYS.LIB,独立ASP QSYS.LIB,またはQDLS内でオープンされている場合には,そのオブジェクトをリンク解除することはできません。オブジェクトがQOPENSYSまたは"ルート" (/)ファイル・システム内でオープンされている場合には,オブジェクトは正常にリンク解除されて,オブジェクトがクローズされたときに削除されます。
- サブツリー処理の実行時には,パス名およびそのパス内のすべてのサブディレクトリーに対する読み取り(*R)および実行(*X)権限が必要です。
- SUBTREE(*ALL)が指定されている場合には,リンクの除去 (RMVLNK)コマンド用にリストされた制約事項およびファイル・システムの差異は,このコマンドの使用方法にも適用されます。
| 上 |
パラメーター
| キーワード | 記述 | 選択項目 | ノーツ |
|---|---|---|---|
| DIR | ディレクトリー | パス名 | 必須, 定位置 1 |
| SUBTREE | ディレクトリーのサブツリー | *NONE, *ALL | オプショナル |
| RMVLNK | リンクの除去 | *NO, *YES | オプショナル |
| 上 |
ディレクトリー (DIR)
ディレクトリーのパス名,あるいは除去するディレクトリーの1つまたは複数のパス名を突き合わせるパターンを指定します。
オブジェクト・パス名は,単純名,またはオブジェクトが入っているディレクトリーの名前で修飾された名前とすることができます。パス名の最後の部分にパターンを指定することができます。アスタリスク(*)は任意の数の文字が突き合わされ,疑問符(?)は単一文字が突き合わされます。パス名が修飾されているか,あるいはパターンを含んでいる場合には,パス名をアポストロフィで囲まなければなりません。
パス名を指定するときの詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクション の「オブジェクトの命名規則」を参照してください。
注: このパラメーターではUNICODEが使用可能です。詳しくは,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクションで「CLでのUNICODEサポート」を参照してください。
| 上 |
ディレクトリーのサブツリー (SUBTREE)
ディレクトリー (DIR)パラメーターで指定されたオブジェクトがディレクトリーの場合に,サブツリー内のすべてのオブジェクト・リンクを除去するかどうかを指定します。
ディレクトリーのサブツリー (SUBTREE)パラメーターまたはリンクの除去 (RMVLNK)パラメーターのいずれかを指定できますが,両方を指定することはできません。
- *NONE
- DIRで指定されたディレクトリーは,それが空の場合にのみ除去されます。ディレクトリーには,ディレクトリー(.)および親ディレクトリー(..)の項目が含まれていることがありますが,それでも空のディレクトリーとして扱われます。
- *ALL
- DIRによって指定されたディレクトリー内にあるオブジェクト・リンクが除去されます。ディレクトリーの内容は,すべてのサブディレクトリーの内容と同様に除去されます。
注: DIRパラメーターからのパターン・マッチングは第1レベルのオブジェクトにのみ適用されます。第1レベルのオブジェクトがディレクトリーの場合には,そのパターン・マッチングは,その内容またはすべてのそのサブディレクトリーの内容には適用されません。
コマンドが特定のディレクトリー・サブツリーの処理を開始すると,検出されて処理されるオブジェクトは,指定されたディレクトリー・ツリー内でのオブジェクトの編成を更新する操作の影響を受ける可能性があります。これには次のようなものがありますが,これらに限定されるわけではありません。
- オブジェクト・リンクの追加,除去,または名前変更
- ファイル・システムのマウントまたはマウント解除
- コマンドを呼び出すプロセスの有効ルート・ディレクトリーの更新
- シンボリック・リンクの内容の更新
ディレクトリー・サブツリーを処理するために,システム・コードは,処理中に開いておくことのできる処理対象ファイル記述子の最大数を増やすことができます。これは,コマンドが記述子の不足のために失敗しないようにするために行われます。この処理対象最大値は,コマンド完了時にリセットされません。
| 上 |
リンクの除去 (RMVLNK)
ディレクトリー内のすべてのオブジェクトをリンク解除するか,あるいはディレクトリーにオブジェクトが含まれていた場合にそのディレクトリーを削除できないようにするかを指定します。
ディレクトリーのサブツリー (SUBTREE)パラメーターまたはリンクの除去 (RMVLNK)パラメーターのいずれかを指定できますが,両方を指定することはできません。
- *NO
- 空のディレクトリーだけが除去されます。ディレクトリーには,ディレクトリー(.)および親ディレクトリー(..)の項目が含まれていることがありますが,それでも空のディレクトリーとして扱われます。
- *YES
- 指定されたディレクトリー内のすべてのオブジェクトが除去されます。ディレクトリーが入っているファイル・システムがディレクトリー内のリンクおよびオブジェクト・リンクを含むディレクトリーの除去をサポートしていない場合には,エラー・メッセージCPFA0AC "ディレクトリーにオブジェクトが入っています。ディレクトリーは&1です。" が送られます。
注: QDLS, QSYS.LIBおよび独立ASP QSYS.LIBファイル・システムは,このパラメーター仕様を使用したリンクの除去をサポートします。その他のファイル・システムについては,SUBTREE(*ALL)パラメーター仕様を使用してください。
注: DIRパラメーターからのパターン・マッチングは第1レベルのオブジェクトにのみ適用されます。第1レベルのオブジェクトがディレクトリーの場合には,そのパターン・マッチングは,その内容またはすべてのそのサブディレクトリーの内容には適用されません。
| 上 |
例
RDの代替コマンド名はRMVDIRです。次の例では代替コマンド名を使用していますが,RDはそれらのすべてで直接RMVDIRに置き換えることができます。
例1:ディレクトリーおよびそのオブジェクトの除去
RMVDIR DIR('/QSYS.LIB/JULIO.LIB') RMVLNK(*YES)
このコマンドは,そのすべてのオブジェクトがリンク解除された後でディレクトリー/QSYS.LIB/JULIO.LIBを除去します。ディレクトリー/QSYS.LIB/JULIO.LIBにオブジェクトがある場合は,すべてのオブジェクトのリンクが解除されてから,ディレクトリー/QSYS.LIB/JULIO.LIBが除去されます。
例2:空のディレクトリーの除去
RMVDIR DIR('/QSYS.LIB/EMPTY.LIB') RMVLNK(*NO)
このコマンドは,空のディレクトリー/QSYS.LIB/EMPTY.LIBを除去します。
後続の例は,以下のディレクトリー構造を前提としています。
---- DIR2
/
/--DIR1 ------- DIR3
$ $ $
$ $ -- OBJ1
$ $
$ -- DIR4 -- DIR5 -- DIR6
$ $
-- OBJ3 -- OBJ2
OBJ4
例3:サブツリー処理を使用したディレクトリーおよびそのオブジェクトの除去
RMVDIR DIR('/DIR1/DIR4'') SUBTREE(*ALL)
このコマンドは,DIR4ディレクトリー・ツリーを除去します。これには,OBJ2,DIR6,DIR5,およびDIR4オブジェクトの除去が含まれます。
例4:サブツリー処理なしでのディレクトリーの除去
RMVDIR DIR('/DIR1/DIR2') SUBTREE(*NONE)
このコマンドは,ディレクトリー/DIR1/DIR2が空のために除去します。
例5:パターン・マッチングおよびサブツリー処理を使用したディレクトリーのグループの除去
RMVDIR DIR('/DIR1/D*') SUBTREE(*ALL)
オブジェクトOBJ1とOBJ2,およびディレクトリーDIR2, DIR3, DIR5, DIR6,およびDIR4が除去されます。オブジェクトOBJ3およびOBJ4は,指定された名前パターンに一致しないため,および名前パターンに一致するディレクトリーにないため,除去されません。
| 上 |
エラー・メッセージ
*ESCAPE メッセージ
- CPFA085
- ユーザー&1のホーム・ディレクトリーが見つからなかった。
- CPFA093
- パターンに一致する名前が見つからなかった。
- CPFA09C
- オブジェクトが認可されていない。オブジェクトは&1です。
- CPFA09D
- プログラム&1でエラーが起こった。
- CPFA09E
- オブジェクトが使用中。オブジェクトは&1です。
- CPFA0A1
- 入力または出力エラーが起こった。
- CPFA0A3
- パス名分析解決によりループしている。
- CPFA0A7
- パス名が長すぎる。
- CPFA0A9
- オブジェクトが見つからない。オブジェクトは&1です。
- CPFA0AA
- スペースを獲得しようとしている時にエラーが起こった。
- CPFA0AB
- オブジェクトの操作が失敗しました。オブジェクトは&1です。
- CPFA0AC
- ディレクトリーにオブジェクトが入っています。ディレクトリーは&1です。
- CPFA0AD
- 機能がファイル・システムによってサポートされていない。
- CPFA0B1
- 要求された操作は使用できない。アクセスの問題です。
- CPFA0B2
- 要求を満たすオブジェクトはない。
- CPFA0B7
- &3個のオブジェクト・リンクが除去されました。&4個のオブジェクト・リンクは除去されませんでした。
| 上 |