CL コマンドおよび表示画面のパス名規則

CL コマンドまたは表示画面を使用してオブジェクトに働きかける際、そのオブジェクトを識別するために、そのオブジェクトのパス名を指定します。

以下は、これらのパス名を指定する際に考慮すべき規則を要約したものです。 これらの規則の中で、オブジェクトという用語は、 任意のディレクトリー、ファイル、リンク、その他のオブジェクトを表します。

  • 通常、パス名に含まれる文字は、そのすべてがジョブのコード化文字セット ID (CCSID) もしくは (ジョブ CCSID が 65535 である場合) ジョブのデフォルト CCSID の中の有効な文字でなければなりません。 一部のコマンドは「Unicode 対応」です。つまり、QCAPCMD API などのインターフェースを使用して、コマンドおよびパス名情報を Unicode CCSID で指定することができます。 詳しくは、 IBM i ドキュメントの制御言語におけるユニコード・サポート 」を参照してください。
  • パス名は階層的順序で指定されます。つまりパス名は、最上位のディレクトリーで始まり、コマンドによって働きかけるオブジェクトの名前で終わります。 区切り文字 によってパス名の各構成要素 が分離されます。例えば、次のとおりです。

    Dir1/Dir2/Dir3/UsrFile

  • すべてのコマンドおよび表示画面では、スラッシュ (/) 文字を区切り文字として使用することができます。 また、ほとんどのコマンドおよび表示画面では、円記号 (¥) 文字も区切り文字として使用することができます。 ただし、一部のコマンドおよび表示画面では、円記号 (¥) が他の文字と同様に扱われることがあります。 したがって、円記号 (¥) 文字を使用する際は注意する必要があります。
  • 絶対 パス名は区切り文字で始まります。 パス名の解決は「ルート」(/) ディレクトリーから開始されます。例えば、次のとおりです。

    /Dir1/Dir2/Dir3/UsrFile

    ここで Dir1 は、「ルート」(/) ディレクトリーのサブディレクトリーです。

  • パス名が波形記号 (~) 文字で始まり、その後に区切り文字が続く場合、パス名の解決はコマンドを入力するユーザーのホーム・ディレクトリーから開始されます。例えば、次のとおりです。

    '~user-profile-name/UsrDir/UsrObj'

  • 指定されたパス名の先頭以外の位置にある波形記号 (~) 文字はなんら特別な意味を持ちません。
  • 相対 パス名は区切り文字でも波形記号 (~) 文字でも始まりません。 パス名の解決は現行ディレクトリーから開始されます。例えば、次のとおりです。

    ‘MyDir/MyFile’

    MyDir は、現行ディレクトリーのサブディレクトリーです。 相対パス名を使用する際は、現行ディレクトリーが正しく設定されるように十分注意する必要があります。

  • 区切り文字や波形記号その他の特殊文字 (下記参照) を含むパス名は、コマンド行に入力する際、単一引用符 (') で囲む必要があります。 これらの引用符は、表示画面でパス名を入力する際はオプションです。
  • スラッシュ (/) 文字とヌル文字はパス名の個々の構成要素では使用できません。 円記号 (¥) 文字は、円記号 (¥) を区切り文字と見なすコマンドや表示画面の構成要素では使用できません。
  • コマンドでは 16 進数 40 未満のコード・ポイントを持つ文字を指定できますが、パス名全体が 16 進形式で指定された場合に限られます。例えば、次のとおりです。

    CRTDIR DIR(X’02F0F1F3’)

    これらの文字を使用することは推奨されません。

  • オブジェクトは、各ディレクトリー内で固有でなければなりません。
  • コマンドは、最大で 255 文字の構成要素名および最大で 5000 文字のパス名を受け入れます。 ただし、ファイル・システムによっては、これよりはるかに短い構成要素名やパス名しか許可しないものもあります。 また、構成要素名に使用できる文字を制限したり、特定の構成要素名形式を要求したりする場合もあります。 さらにまた、コマンドや表示画面自体によってパス名が大文字に変換されることは通常ありませんが、ファイル・システムが指定されたオブジェクトの作成または検索の前にそうすることはあり得ます。 これらの考慮事項の詳細については、 IBM i ドキュメントの 「ファイル・システム」のトピックにある各ファイル・システムの説明を参照してください。
  • コマンドによっては、あるパターンを指定することで、1 つのコマンドがその指定したパターンと一致する複数のオブジェクトに作用できるようになるものもあります。 パス名の最後の構成要素の中で 1 つ以上のアスタリスク (*) または疑問符 (?) を使用することができます。 アスタリスク(*)は任意の文字数に対応します。 疑問符 (?) は任意の 1 文字を表します。 次の例は、「/Dir1/Dir2/Dir3」にあるオブジェクトの中から名前が「d」で始まり「txt」で終わる、すべてのオブジェクトを検索します。 この場合は、「dshorttxt」、「d1234.txt」、および「dtxt」などの名前を持つオブジェクトを見つけることができます。

    '/Dir1/Dir2/Dir3/d*txt'

    次の例は、名前が「d」で始まり、その後に任意の 1 文字が続き、「txt」で終わるオブジェクトを検索します。 この場合は、「d1txt」や「d.txt」などの名前を持つオブジェクトを見つけることはできますが、「d12txt」や「dtxt」などの名前を持つオブジェクトを見つけることはできません。

    '/Dir1/Dir2/Dir3/d?txt'

    アスタリスクまたは疑問符を複数個使用したり、この 2 つを組み合わせて使用したりすれば、より複雑なパターンを指定することができます。 ただし IBM i ただし、特殊値との混同を避けるため、パス名はアスタリスク(*)1文字で始めることはできない。 パス名の先頭でパターン照合を行うには (相対パス名などの場合)、アスタリスク (*) を 2 つ続けてください。例えば、次のようにします。

    '**.file'

  • 次のいずれかの文字が実際の構成要素名の中で使用されている場合は、追加の単一引用符 (') または二重引用符 (") でパス名を囲む必要があります。
    • アスタリスク (*)。
    • 疑問符 (?)
    • 単一引用符 (')
    • 二重引用符 (")
    • パス名の最初の構成要素名の先頭文字として使用された場合の波形記号 (~)。 波形記号は、他の位置で使用された場合は、単なるもう 1 つの文字として解釈されます。

    例えば、構成要素にアスタリスクが含まれている場合は、その名前を追加の引用符内に指定して、アスタリスクがパターンの一部として解釈されないようにする必要があります。

         '/Dir1/Dir/A*Smith'

    または

         '''/Dir1/Dir/A*Smith'''

    構成要素名自体に単一引用符や二重引用符が含まれている場合は、その引用符を 2 つ続けて指定することで、引用符を表現する必要があります。例えば、次のように指定する必要があります。

         ‘”/Dir1/Dir/Smith’’s Directory”’

    または

         ‘”/Dir1/Dir/This is an “”example”””’
  • 仮に、さまざまなファイル・システム、コマンド、および表示画面が構成要素名にある種の特殊文字のあることを許可するとしても、それらの文字は使用しないようにしてください。それらの特殊文字のために、他のインターフェースを使用してオブジェクトを処理することが困難になったり不可能になったりするからです。 スラッシュ (/)、円記号 (¥)、アスタリスク (*)、疑問符 (?)、単一引用符 (')、二重引用符 (")、波形記号 (~)、およびコロン (:) はすべて、ある種のインターフェースにとって特別な意味を持ちます。 例えば、CL コマンドは、スラッシュ (/) と円記号 (¥) を両方とも区切り文字と見なすので、構成要素名にこれらの文字のいずれかが含まれるパスを正しく解釈できません。 同様に、円記号 (¥) やコロン (:) があると、一部のオブジェクトが PC クライアント・インターフェースから使用できなくなることがあります。