ディレクトリーの除去 (RD)

ディレクトリーの除去 (RD)コマンドは,ディレクトリー内のすべてのオブジェクトがリンク解除され,ディレクトリーが以後使用されないときに,指定されたディレクトリーをシステムから除去します。除去するディレクトリーにオブジェクトが入っている場合には,このコマンドは任意指定ですべてのオブジェクトをリンク解除してからディレクトリーを削除します。ディレクトリーのすべてのオブジェクトをリンク解除する権限がユーザーにない場合には,そのユーザーが権限をもっているオブジェクトだけをリンク解除します。オブジェクトをリンク解除できない場合には,リンク解除できないディレクトリーおよびディレクトリー内のすべてのオブジェクトは除去されません。

このコマンドは,指定されたディレクトリーの場所,その内容,およびそのすべてのサブディレクトリーの内容が除去されるディレクトリー・ツリーの除去にも使用することができます。SUBTREE(*ALL)またはRMVLNK(*YES)が指定されている場合には,コマンドは,サブツリー内の可能な限りのオブジェクトを除去しようとします。除去できない各オブジェクトに対して,診断メッセージが送信されます。すべてのオブジェクトの処理が行われた時,エラーがあった場合にエスケープ・メッセージが送信されます。すべてのオブジェクトがエラーなしで除去された場合には,完了メッセージが送信されます。

ディレクトリー (DIR)パラメーターで指定されたか,あるいはサブツリーの処理中に見つかったシンボリック・リンク・オブジェクトを見つけた場合には,そのシンボリック・リンクをたどることはできません。

注: コマンド上でSUBTREE(*ALL)が指定されていた場合は,シンボリック・リンクが除去されます。

このコマンドはディレクトリーの除去 (RMVDIR)コマンドの別名で,次の代替コマンド名を使用して出すこともできます。

統合ファイル・システム・コマンドの詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「統合ファイル・システム」トピック・コレクションを参照してください。

制約事項:

パラメーター

キーワード 記述 選択項目 ノーツ
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)

オブジェクトOBJ1OBJ2,およびディレクトリー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個のオブジェクト・リンクは除去されませんでした。