[an error occurred while processing this directive]
HP OpenVMS Systems Documentation |
OpenVMS 用户手册
4.3.1 设置默认目录为不存在的目录
注意,操作系统允许您把默认目录设置为一个不存在的磁盘或目录。如果您已把默认目录设置为一个不存在的目录,那么当您设法处理文件时,系统将显示一条消息,声明目录不存在。如果您发现自己处在一个不存在的磁盘或目录上而不能完成要求的操作,把默认目录设置为一个现有的磁盘或目录。 要显示当前默认目录,输入命令 SHOW DEFAULT,如以下例子所示:
您可以使用 SET DEFAULT 命令更改默认设备。默认保持有效直到您输入另一个 SET DEFAULT 命令或注销。您也可以在命令中指定要设置为默认目录的设备,而不包括目录。 以下例子展示如何更改默认设备:
在以下例子中,假定目录 [JONES] 存在于 DISK1 和 DISK2上:
4.3.3 使用临时默认如果您输入一列文件,却没有为列表中的每个文件给出完整文件说明,那么系统对节点名、设备名和目录名使用临时默认值。要以当前默认目录替换临时默认,使用空的方括号。如果 列表中的文件包括一个节点名,使用一个双冒号可以取代临时默认。 在以下例子中,A.LIS 和 B.LIS 从 [STATS] 目录复制到 [RESULTS] 目录:
注意,系统使用列表中前面的文件说明 [STATS]A.LIS,确定文件 B.LIS 的临时默认目录也是 [STATS]。 在以下例子中,使用一个临时默认设备和两个不同的目录:
所有 3 个文件 (A.LIS,B.LIS,和 C.LIS) 从 BASE 设备复制。A.LIS 文件从 [STATS] 目录复制。其他 2 个文件从 [TIME] 目录复制。 在以下例子中,当前默认目录是 [BETA]。这个命令把 [ALPHA]TEST.DAT 和 [BETA]FINAL.DAT 复制到 [RESULTS] 目录:
4.4 保护目录防止其他用户非法访问要完全地保护文件,您至少要应用与该文件所在目录具有的同样保护。例如,如果您不让一个用户对一个文件有任何存取权,但是允许该用户读取文件所在目录,那么该用户就不能存取文件的内容,但是可以看到它存在。相反,允许用户存取文件,但是拒绝存取文件所在目录 (或父目录之一),那么该用户就不能看到它存在。
按照默认,顶级目录受到基于 UIC 的保护 (S:RWE,O:RWE,G:RE,W:E) 并且没有 ACL。子目录受到来自父目录的基于 UIC 的保护。有关保护码的详情,请参阅 10.3 节。 当建立目录时要明确地指定基于 UIC 的保护,使用 CREATE/DIRECTORY 命令的 /PROTECTION 限定词。在目录建立后,您就能为它指定一个 ACL。 要更改现有目录基于 UIC 的保护,可对目录文件应用 SET SECURITY/PROTECTION 命令。
指定执行存取而不是读存取,
您可以限制但不能禁止目录存取。对目录的执行存取准许您检查和读取您知道包含在这个目录中的文件;这意味着如果您已经知道一个文件的文件说明,您就可以检查它,但是您不能列出这个目录的文件。有关安全的详情,请参阅
OpenVMS Guide to System Security。 从目录结构的任何一点,您可以查阅这个结构的另一个目录或子目录。特别指出目录或子目录或者使用省略号 (...) 和连字号 (-) 通配符,您可以做这件事。有关通配符的详情,请参阅 3.2节。
如果您工作在支持扩展文件说明的环境中,要知道使用通配符搜索目录结构的详情,请参阅第 5 章。 使用省略号 (...) 通配符可向下搜索目录层次。要搜索当前目录和它之下的所有子目录,使用省略号,如下所示:
如果用一个省略号开始目录说明,从当前目录开始搜索。然而,如果您用一个句点开始目录说明,则只搜索比当前目录低一级的子目录。 要从您当前所在目录结构的位置搜索所有顶级目录和它们的子目录,使用一个星号 (*) 后面跟随一个省略号 (...)。 在以下例子中,假定当前目录是 [JONES],则将显示在 [JONES] 和 [JONES] 之下所有子目录中所有名为 FEES.DAT 文件的最近版本:
在以下例子中,假定当前默认目录是 [JONES],则将搜索所有末端为 .SALES 的子目录,并显示文件 FEDERAL.LIS 的最近版本:
在以下例子中,显示在 [JONES] 和 [JONES] 之下所有子目录中名为 DEPT.DAT 的所有文件的最近版本:
在以下例子中,假定当前目录是 [JONES],则将搜索 [.LICENSES] 子目录中的文件 MAILING.LIS,但不搜索 [JONES.LICENSES.MARRIAGE]:
在以下例子中,假定当前目录是 [JONES],则显示在 [JONES] 之下的 [.LICENSES] 子目录中和在 [.LICENSES] 子目录之下的所有子目录中的所有名为 DEPT.DAT 的文件的最近版本:
在以下例子中,(如果存在) 将搜索 8 级目录名 (顶级目录和第 7 级子目录)。注意,展示的命令需要 READALL 特权。
4.5.2 连字号 (-) 子目录字符连字号字符作为缩写方法指定在当前进程的默认目录之上的 (子) 目录。每个连字号表示一级。连字号后面可以跟随子目录名 (带分开句点) 来指定更深目录层次的其他路径。 如果您输入太多连字号,以致于引用点超出顶级目录,那么系统将显示出错消息。 在以下例子中,当前进程的默认目录是 [JONES.LICENSES]。以下命令显示 [JONES] 中 STAFF.DIS 的最近版本:
在以下例子中,当前目录是 [JONES.LICENSES]。展示的命令显示 [JONES.TAXES] 中 BILLING.DAT 的最近版本:
在以下例子中,展示的命令把进程默认目录更改到目录层次中比当前级高 2 级的目录。
在 OpenVMS V7.2 Alpha 或以后支持 ODS-5 磁盘的版本中,文件名和子目录名可以单独由连字号组成。要区别其名称包括连字号的 (子) 目录和相对文件说明,前者必须至少用一个 RMS 换码符 (^) 指定。以下说明引用比当前进程的默认目录高 3 级的目录。
以下说明引用目录 (UFD) "---":
4.6 按 UIC 格式处理目录虽然本章集中在如何使用命名目录,您也可以按 UIC 格式指定目录名。在 UIC 格式中,2 部分的八进制数构成用户标识码 (UIC),它指向用户文件目录 (UFD)。 几乎每个接受文件说明的 DCL 命令都可以识别 UIC 格式的目录名。一般而言,您不需要使用这个格式,除非您是使用实时资源共享执行 (RSX) 操作系统。 UIC 目录说明有以下格式:
例如,[122,1] 是一个 UIC 目录说明,表示组 122 中的成员 1。UIC 格式的目录名一般是对应于目录拥有者的 UIC,但不一定。
4.6.1 使用通配符指定 UIC 目录
也有可能使用星号 (*) 通配符来指定一个 UIC
目录。例如,[*,6] 指出所有带任何组号和成员号 6 的目录。该搜索限于 UIC 格式的目录。目录说明 [*,*] 找出所有 UIC 格式的目录。
如同找出所有 UIC 格式的目录,要找出所有命名的目录,可使用 [*]。 注意,可以把目录名从 UIC 格式翻译为命名格式。如果有必要的,则在组号和成员号的左边添加零来建立 6 字符的名称。 不能混合使用 UIC 格式和命名格式。如果有一个 UIC 格式名的目录,但要指定它的一个子目录,则要把 UIC 格式翻译为命名格式。 UIC 目录说明 [122,1] 的等价命名格式如下所示:
要引用子目录 [122,1]SUB.DIR,可使用命名目录 [122001.SUB]。
第 5 章
|
$ CREATE This.File.Name.Has.A.Lot.Of.Periods.DAT $ CREATE - _$ ThisIsAVeryLongFileName^&ItWillKeepGoingForLotsAndLotsOfCharacters.Exceed - _$ ingThe39^,39presentInPreviousVersionsOfOpenVMS $ DIRECTORY Directory TEST$ODS5:[TESTING] ThisIsAVeryLongFileName^&ItWillKeepGoingForLotsAndLotsOfCharacters.Exceeding The39^,39presentInPreviousVersionsOfOpenVMS;1 This^.File^.Name^.Has^.A^.Lot^.Of^.Periods.DAT;1 共 2 个文件。 |
传统 (ODS-2 兼容的) 文件名可以使用字母数字字符 (A-Z、a-z 和 0-9)、美元符 ($)、下划线 (_) 和连字号 (-)。ODS-5 提供更宽的字符集用于命名文件。
ISO LATIN-1 和 Unicode (UCS-2) 字符集
ODS-5 支持文件名使用 8 位 ISO Latin-1 字符和 16 位 Unicode (UCS-2) 字符集。ISO Latin-1 多国字符集是传统 ASCII 字符集的超集。在扩展文件说明中,您可以使用 8 位 ISO Latin-1 多国字符集的所有字符,但星号 (*) 和问号 (?) 除外。
在文件说明中,有些 ISO Latin-1 字符需要一个换码符在它们之前,使之能够被正确解释。在扩展文件名中,RMS 和 DCL 把音调符号 (^) 解释为换码符。下表包含换码符的使用规则:
. , ; [ ] % ^ & |
VAX 系统不能存取包含特殊字符的文件名。有关混合构造环境的详情,请参阅 5.7 节。 |
在扩展文件名中把句点 (.) 用作一个文字字符需要 RMS 确定哪一个句点是文件名字符和哪一个是定界符。
当在扩展文件名中只使用一个句点 (.) 时,这个句点解释为定界符。如同 OpenVMS 的以前版本,如果单个句点后面跟随一个数,也出现这种现象:
$ CREATE Test.1 |
建立文件:
Test.1;1 |
当文件名中有多个句点 (.) 时,RMS 查看最后一个句点之后的所有字符。
如果 | 那么 |
---|---|
在最后一个句点后的字符都是数字 | 数字串被确定为版本号 |
在最后一个句点后的字符是所有数字和前导一个减号 (-) | 数字串被确定为版本号 |
在最后一个句点后有 5 个以上数字字符 | RMS 认为是非法文件名 |
有一个非数字字符跟随最后一个句点 | 被解释为文件类型定界符 |
例如,以下命令:
$ CREATE Test4.3.2.1 |
建立文件:
Test4^.3.2;1 |
在此,2 是文件类型,而 1 是文件版本号。
明确用分号 (;) 定界的版本号也必须不多于 5
个数字字符,并且前面可以加上一个减号 (-)。5.1.3 保留字母大小写
OpenVMS 以前版本中,DCL 和 RMS 的把所有文件说明转换为大写字母。
在 ODS-5 卷上,您可以以大写、小写或混合字母大小写输入文件名。所有文件名的字母大小写保持建立时候的形式。例如:
$ CREATE KitContents.Txt $ DIRECTORY 目录 DISK1:[USER1] KitContents.Txt;1 |
当您以相同名称建立多个文件,而只是字母大小写不同时,DCL 把后续文件处理为原始文件的新版本,并把它们转换为与原始文件相同的字母大小写。例如:
$ CREATE CaPri $ CREATE CAPRI $ CREATE capri $ DIRECTORY 目录 DISK1:[USER1] CaPri.;1 CaPri.;2 CaPri.;3 |
ODS-5 文件支持单个和多个字符通配符功能。单字符通配符精确地表示文件名或文件类型中的一个字符,但是不能使用在文件版本字符串中。多字符通配符可以表示文件名或文件类型中任何数目的字符 (包括零个字符)。多字符通配符可以用于代替版本字符串。5.1.4.1 通配符
以下字符总是有效的通配符:
百分号 (%) 继续作为单字符通配符是为了维护与现有应用程序的相容性。当前面加上音调符号 (^) 时,百分号 (%) 可以使用为一个文字字符,而且在 Windows 文件名中它也是文字字符。除百分号之外,RMS 也把问号 (?) 识别为单字符通配符。在 OpenVMS 7.2 和以后版本中,问号作为通配符,功能等同于百分号。在搜索式样中,每个百分号和问号精确地匹配一个字符。
在通配符匹配时,换码字符 (如 ^.) 或换码序列 (如 ^EF 或 ^U0101) 被认为是单个字符。 |
1 未修改的程序和公用程序可能把完整文件说明限制或缩写到 255 个字节。 |
前页 | 后页 | 目录 | 索引 |