# OpenVMS
ユーザーズ・マニュアル

前へ | 次へ | 目次 | 索引

## 4.8.6 印刷コマンドの修飾子

プリント・ジョブは，PRINT コマンドに対する修飾子を使用して，さまざまな方法で制御できます。たとえば，印刷部数を指定したり，印刷ジョブが完了したときに通知を出すようにシステムに要求したりできます。

ここに示した修飾子の他に，システムでDECprint Supervisorソフトウェアを実行している場合には，ランドスケープ印刷や両面印刷など，さまざまな方法で印刷するために/PARAMETER修飾子を使用できます。システムで使用できるプリント・オプションの一覧については，システム管理者に質問してください。

次の表は PRINT コマンドの修飾子を示しています。 PRINT コマンドについての詳細は，『Compaq OpenVMS DCL ディクショナリ』またはオンライン・ヘルプを参照してください。

印刷操作 | 印刷ジョブ・コマンドと修飾子
--- | ---
コピー部数 ジョブ別 ファイル別 指定されたファイルのみ | PRINT/JOB_COUNT=n 1 PRINT/COPIES=n 1 ファイル指定/COPIES=n 1
ページ数 | PRINT/PAGES= 1
印刷機能 フラグ・ページ 用紙タイプ 特殊機能 ダブルスペーシング ページ見出し | PRINT/FLAG= 1 PRINT/FORM= 1 PRINT/CHARACTERISTICS= 1 PRINT/SPACE 1 PRINT/HEADER 1
ジョブ実行の通知 | PRINT/NOTIFY
ジョブ実行の延期 実行時刻指定 無期限 | PRINT/AFTER PRINT/HOLD
延期しているジョブの解放 | SET QUEUE/ENTRY/RELEASE
印刷ジョブの表示 | SHOW ENTRY
印刷ジョブの停止 ジョブの削除 現在印刷しているジョブを 停止して，キューの中の次 のジョブの印刷を開始する | DELETE/ENTRY=ジョブ番号 STOP/ABORT
現在印刷しているジョブを 停止して，再登録して印刷 し直す | STOP/REQUEUE
ジョブ完了後，ジョブをキューに残す | PRINT/RETAIN

1SET QUEUE/ENTRY コマンドに修飾子を使用すると，キューに登録されているが，まだ印刷されていない印刷ジョブにこれらの操作を指定できる。

# 第 5 章
ディレクトリ : ファイルの編成と管理

ディレクトリは，ファイルの名前が格納されたファイルのことです。本章では，以下のことについて説明します。

- ディレクトリ構造

- ディレクトリについて

- 省略時の設定

- 他のユーザからのディレクトリの保護

- ワイルドカードを使用したディレクトリ構造の検索

- UIC 形式でのディレクトリの操作

注意 この例ではノード名を指定するときに，アクセス制御文字列を指定していないこともあります。このような例では，代理アカウントを使用すれば，リモート・システムで操作を行えるからです。

Extended File Specifications を使用する環境で作業を行っている場合，ディレクトリ構造と構文は，ここで説明している従来からの構造とは大きく異なります。このような環境でのディレクトリ操作については，『OpenVMS Extended File Specifications の手引き』を参照してください。

詳細情報については，次のものを参照してください。

- 深いディレクトリの操作については，『OpenVMS Extended File Specifications の手引き』

- 本章で説明する DCL コマンドの詳しい説明については，『Compaq OpenVMS DCL ディクショナリ』，または DCL ヘルプ

# 5.1 ディレクトリ構造

図 5_1 に，ディレクトリ階層のサンプルを示します。このディレクトリ構造の最上部は，マスタ・ファイル・ディレクトリ (MFD) です。このマスタ・ファイル・ディレクトリには，[000000] という名前が付けられています。 図 5-1 に示す MFD には，ユーザ・ファイル・ディレクトリ MARTINO.DIR，PUBLIC.DIR，JONES.DIR のエントリが登録されています。最上位ディレクトリ [JONES] は，マスタ・ファイル・ディレクトリ [000000] 中の JONES.DIR;1 という名前のユーザ・ファイル・ディレクトリのことです。

図 5-1 に示したサンプル・ディレクトリ構造は，本章の多くの例で使用します。

図 5-1 ディレクトリ構造

以下は，このディレクトリ構造についての説明です。

1. ここでは，ユーザが [JONES] である場合を想定します。ログインすると，ユーザは省略時のディレクトリである [JONES] に入ります。

2. [JONES] には，次の 4 つのディレクトリでないファイルが入っています。

   - LOGIN.COM;3

   - LOGIN.COM;4

   - STAFF.DIS;3

   - STAFF_VACATIONS.TXT;2

3. [JONES] には，次の 2 つのディレクトリ・ファイルも入っています。

   - LICENSES.DIR;1

   - TAXES.DIR;1

4. ディレクトリ・ファイル LICENSES.DIR;1 は， [JONES.LICENSES] サブディレクトリを指しています。

5. TAXES.DIR;1 は，[JONES.TAXES] サブディレクトリを指しています。

6. [JONES.LICENSES] サブディレクトリには，3 つの非ディレクトリ・ファイルと 2 つのディレクトリ・ファイルが入っています。

7. ディレクトリ・ファイル DOG.DIR;1 は， [JONES.LICENSES.DOG] サブディレクトリを指しています。

8. MARRIAGE.DIR は，[JONES.LICENSES.MARRIAGE] サブディレクトリを指しています。

# 5.2 ディレクトリとは

ディレクトリを表す場合は，ディレクトリ指定を使用します。ディレクトリ指定は，最上位ディレクトリ名とそれに続く最大 7 つのサブディレクトリ名から構成されます。サブディレクトリ名の前には必ずピリオド (.) が付きます。

注意 Extended File Specifications を使用する環境でのディレクトリ構造は， Extended File Specifications を使用しない従来のものとは異なります。 Extended File Specifications を使用する環境で作業を行う場合の，深いディレクトリ構造と構文については『OpenVMS Extended File Specifications の手引き』を参照してください。

ディレクトリ指定は，次の形式になります。

    [ディレクトリ.サブディレクトリ]

1 つまたは複数の階層のサブディレクトリを追加するには，ピリオドとサブディレクトリを順に追加していきます (最大 7 階層)。サブディレクトリは，サブディレクトリ名と1 つ上のレベルのディレクトリ名の連結によって，指定されます。

    [ディレクトリ.サブディレクトリ.サブディレクトリ]

ディレクトリ名やサブディレクトリ名には，最大 39 の英数字を指定できます。ファイル名として有効な文字は，同様に，ディレクトリ名としても有効です。ディレクトリ名は，大括弧 ([]) または山括弧 (<>) で囲むようにします。

## 5.2.1 ディレクトリの作成

ディレクトリを作成する場合，CREATE/DIRECTORY コマンドを使用します。現在のディレクトリの下にサブディレクトリを作成する場合には，現在のディレクトリ名の代わりにピリオドを指定できます。

たとえば，[JONES.LICENSES] ディレクトリを作成する場合には，次のように入力します。

    $ CREATE/DIRECTORY [JONES.LICENSES]

現在の省略時のディレクトリが [JONES] の場合，次のように入力します。

    $ CREATE/DIRECTORY [.LICENSES]

## 5.2.2 ディレクトリの表示

ディレクトリの中にあるファイルの名前を表示する場合は， DIRECTORY コマンドを使用します。サブディレクトリの中のファイルを表示する場合には， DIRECTORY コマンドにサブディレクトリ名を指定します。

DIRECTORY コマンドに特定のコマンド修飾子を指定すると，ファイルの名前以外の情報を検索することができます。 DIRECTORY コマンドで使用できる修飾子については，『Compaq OpenVMS DCL ディクショナリ』またはオンライン・ヘルプを参照してください。

たとえば，[JONES] の中のファイルを表示する場合には，次のように入力します。この例では，[JONES] の中に 2 つのサブディレクトリ ([JONES.LICENSES] と [JONES.TAXES]) と 4 つの非ディレクトリ・ファイル (STAFF.DIS，STAFF_VACATIONS.TXT，および LOGIN.COM の 2 つのバージョン) が入っています。

    $ DIRECTORY

    Directory DISK1:[JONES]

    LICENSES.DIR;1
    LOGIN.COM;3
    LOGIN.COM;4
    STAFF.DIS;3
    STAFF_VACATIONS.TXT;2
    TAXES.DIR;1

    Total of 6 files.

省略時のディレクトリが [JONES] である場合， [JONES.LICENSES] サブディレクトリの内容を表示するには，次のように入力します。

    $ DIRECTORY [.LICENSES]

    Directory DISK1:[JONES.LICENSES]

    DEPT.DAT;3
    DOG.DIR;1
    MAILING.LIS;6
    MARRIAGE.DIR;1
    TOTAL.DAT;2

    Total of 5 files.

## 5.2.3 ディレクトリの削除

ディレクトリを削除する場合は，次の手順に従ってください。

手順 | 操作
--- | ---
1 | ディレクトリにファイルが登録されていないことを確認する。ディレクトリにファイルが登録されているかどうかを調べる場合は， DIRECTORY コマンドを入力する。 ディレクトリの中にファイルがない場合には，次のようなメッセージが表示される。
    %DIRECT-W-NOFILES, no files found
2 | ディレクトリの中にファイルがある場合には，それを別のディレクトリにコピーして保存する。ファイルを保存しない場合には，ファイルを削除する。ディレクトリにサブディレクトリがある場合には，そのサブディレクトリを調べ，中にあるファイルをコピーまたは削除してから，そのサブディレクトリを削除する。
3 | 削除したいディレクトリより 1 レベル上のディレクトリに移動する。サブディレクトリは，ディレクトリにファイルとして存在する。ディレクトリを削除するには，そのディレクトリを指すファイルを削除する。
4 | ファイルの削除が許容されるように，ディレクトリのファイル保護を変更する。マスタ・ファイル・ディレクトリに登録されているディレクトリ・ファイルを削除するためには，SYSPRV 特権が必要。ファイル保護についての詳細は， 第 4 章 を参照のこと。
5 | DELETE コマンドを使用してディレクトリ・ファイルを削除する。

次の例に，[JONES.LICENSES] サブディレクトリを削除する方法をまとめて示します。

    $ SET DEFAULT [JONES.LICENSES]
    $ DIRECTORY
    %DIRECT-W-NOFILES, no files found
    $ SET DEFAULT [JONES]
    $ SET SECURITY/PROTECTION=OWNER:D LICENSES.DIR
    $ DELETE LICENSES.DIR;1

# 5.3 省略時のディレクトリの設定

省略時のディレクトリを変更する場合は， SET DEFAULT コマンドを使用します。新しく変更した省略時の値は，別の SET DEFAULT コマンドを入力するか，システムからログアウトするまで有効です。省略時のサブディレクトリを設定する場合には，それより 1 レベル上のディレクトリの名前に，サブディレクトリ名を追加します。

次の例では，省略時の設定はディレクトリ [JONES] に設定され，ファイル [JONES]STAFF_VACATIONS.TXT が表示されます。

    $ SET DEFAULT [JONES]
    $ TYPE STAFF_VACATIONS.TXT

次の例では，サブディレクトリ [JONES.TAXES] に格納されているファイル BILLING.DAT が表示されます。

    $ SET DEFAULT [JONES.TAXES]
    $ TYPE BILLING.DAT

## 5.3.1 省略時の値を存在しないディレクトリに設定する

このオペレーティング・システムでは，省略時の値を存在しないディスクまたはディレクトリに設定できます。省略時の値を存在しないディレクトリに設定した後，ファイルを操作しようとすると，ディレクトリが存在しないことを示すメッセージが表示されます。現在の設定が存在しないディスクまたはディレクトリであるため，必要な操作を実行できない場合には，省略時の値を既存のディスクまたはディレクトリに設定してください。

## 5.3.2 SHOW DEFAULT コマンド

現在の省略時のディレクトリを表示する場合には，次の例に示すように， SHOW DEFAULT コマンドを入力します。

    $ SHOW DEFAULT
      DISK1:[JONES.TAXES]
    $ SET DEFAULT [PUBLIC]
    $ SHOW DEFAULT
      DISK1:[PUBLIC]

SET DEFAULT コマンドを使用すると，省略時のデバイスも変更できます。省略時の値は，別の SET DEFAULT コマンドを入力するか，システムからログアウトするまで有効です。コマンドの中にディレクトリを指定しなくても，省略時に設定したいデバイスを指定することができます。

次の例に，省略時のデバイスの変更方法を示します。

    $ SHOW DEFAULT
      DISK1:[JONES]
    $ SET DEFAULT DISK2:[GROUP]
    $ SHOW DEFAULT
      DISK2:[GROUP]

次の例では，[JONES] というディレクトリが， DISK1 と DISK2 の両方のデバイスに存在することを示しています。

    $ SHOW DEFAULT
      DISK1:[JONES]
    $ SET DEFAULT DISK2:
    $ SHOW DEFAULT
      DISK2:[JONES]

## 5.3.3 一時的な省略時の値の使用

複数のファイルを入力する場合，それぞれのファイルに完全なファイル指定を指定しないと，ノード名，デバイス名，ディレクトリ名に対して一時的な省略時の値が適用されます。現在の省略時のディレクトリを一時的な省略時の値として使用する場合は，空の大括弧を使用します。複数のファイル指定の 1 つにノード名を指定した場合には，ダブルコロンを使用して，一時的な省略時の値を無効にできます。

たとえば，次のコマンドは，[STATS] ディレクトリにある A.LIS と B.LIS ファイルを [RESULTS] ディレクトリにコピーします。

    $  COPY [STATS]A.LIS,B.LIS  [RESULTS]

この例において，[STATS] は B.LIS ファイルに対する一時的な省略時のディレクトリとなります。システムは，[STATS]A.LIS の前半のファイル指定を使用して，省略時のディレクトリを判別します。

次のコマンドは，1 つの一時的な省略時のデバイスと 2 つのディレクトリを使用しています。

    $  COPY BASE:[STATS]A.LIS,[TIME]B.LIS,C.LIS  [RESULTS]

この例では，3 つのファイル (A.LIS，B.LIS，C.LIS) がすべて BASE デバイスからコピーされています。 A.LIS ファイルは [STATS] ディレクトリからコピーされ，残りの 2 つのファイルは [TIME] ディレクトリからコピーされます。

現在の省略時のディレクトリが [BETA] である場合，次のコマンドは， [ALPHA]TEST.DAT と [BETA]FINAL.DAT ファイルを [RESULTS] ディレクトリにコピーします。

    $  COPY [ALPHA]TEST.DAT,[]FINAL.DAT  [RESULTS]

# 5.4 他のユーザからのディレクトリの保護

ファイルを完全に保護するためには，ファイルが格納されているディレクトリにも同じ保護が必要です。たとえば，あるファイルへのアクセスがすべて拒否されているのに，そのファイルのディレクトリへの読み込みアクセスが許可されている場合には，ファイルは存在することを確認できるが中身を見ることができない，という現象が起きます。逆に，あるファイルへのアクセスは許容されているのに，そのファイルのディレクトリ (またはその親ディレクトリ) へのアクセスが拒否されている場合には，そのファイルが存在することさえわかりません。

注意 重要なファイルを保護するためには，ディレクトリ保護だけでは不十分です。ディレクトリの中のそれぞれのファイルも保護しなければなりません。

省略時の設定において，最上位ディレクトリは UIC に基づく保護S:RWE,O:RWE,G:RE,W:E を受け， ACL に基づく保護は受けません。サブディレクトリは，親ディレクトリから UIC に基づく保護を受けます。保護コードについての詳細は， 第 19.3 節 を参照してください。

ディレクトリを作成するときに UIC に基づく保護を明示的に指定する場合は， CREATE/DIRECTORY コマンドに /PROTECTION 修飾子を指定します。ディレクトリの ACL はディレクトリ作成時に指定することはできません。既存のディレクトリに対するUICベースの保護を変更するには， SET SECURITY/PROTECTIONコマンドをディレクトリ・ファイルに適用します。

ディレクトリへのアクセスを禁止せずにある制限を加えるためには，読み込みアクセスを指定せずに実行アクセスを指定します。ディレクトリに対する実行アクセス権がある場合には，そのディレクトリに格納されているファイルを調べたり，読み込むことができます。つまり，ファイル指定がわかっている場合には，そのファイルを調べることができますが，ディレクトリ内のファイルの一覧を表示することはできません。セキュリティについての詳細は，『OpenVMS Guide to System Security』を参照してください。

前へ | 次へ | 目次 | 索引