Solaris 公用桌面环境:高级用户和系统管理员指南

定义数据类型的数据标准

DATA_CRITERIA 定义定义了将对象类型指定给文件或目录所采用的标准。

可使用在对象分类表 13–3 中显示的标准。

表 13–3 DATA_CRITERIA 标准和描述

标准 

描述 

文件名 

文件名必须与指定模式相匹配。使用 NAME_PATTERN 字段。

文件位置 

路径必须与指定模式相匹配。使用 PATH_PATTERN 字段。

文件内容 

文件内容的指定部分必须与指定数据相匹配。使用 CONTENT 字段。

文件模式 

文件必须拥有指定的许可 (读、写、执行、目录)。使用 MODE 字段。

符号链接

分类是以对象所链接的文件为基础的。  

对于一种数据类型,可以使用多个标准。然而,不能在同一个数据类型中使用 NAME_PATTERNPATH_PATTERN 标准。

基于名称的数据类型

使用 NAME_PATTERN 字段指定命名要求。字段值可以包含下面的通配符:

?—匹配任何单个字符

*—匹配任何字符序列 (包括空字符串)

[cc]—匹配括在括号中的任何字符 (c)

[cc ]—匹配字符的范围为 cc 的任何字符

实例

基于位置的数据类型

使用 PATH_PATTERN 字段指定路径。可以使用与 NAME_PATTERN 相同的通配符。

例如,下面的数据类型使用了基于路径的标准。

DATA_ATTRIBUTES Project_Graphics
 {
 	DESCRIPTION		Graphics file for the QS project. Double-click the \
 					icon to see the graphic.
 	ICON			QSgraphics
 }
 DATA_CRITERIA Project_Graphics_Criteria
 {
 	DATA_ATTRIBUTES_NAME			Project_Graphics
 	PATH_PATTERN						*/projects/QS/graphics/*
 }

基于名称和位置的数据类型

要创建基于文件名和位置的数据类型,请在 PATH_PATTERN 值中包括此名称。在同一个标准定义中,不能同时使用 NAME_PATTERNPATH_PATTERN

实例

使用文件模式作为分类标准

使用 MODE 字段指定必需的许可。

模式标准通常与基于名称、基于位置或基于内容的数据分类组合使用。从而可以将数据类型限定在文件或目录上,或指定所需的读、写和执行许可。

MODE 字段可包含逻辑运算符 (表 13–4) 和字符 (表 13–5)。

表 13–4 MODE 字段逻辑运算符和描述

运算符 

描述 

!

逻辑运算符 NOT

&

逻辑运算符 AND

|

逻辑 OR

表 13–5 MODE 字段字符和描述

字符 

描述 

f

该数据类型只适用于文件 

d

该数据类型只适用于目录 

r

该文件对于任何用户都是可读的 

w

该文件对于任何用户都是可写的 

x

该文件对于任何用户都是可执行的 

l

该文件是链接 

某一具体模式的缺省状态与模式无关。

实例

基于内容的数据分类

使用 CONTENT 字段来指定基于文件内容的数据分类。基于内容的数据分类可与基于名称或基于位置的数据分类组合使用。

分类可基于文件的字符串或数字内容。文件的第一字节的编号为 0 。

用几种独立标准创建数据类型

可用几个独立的标准来创建数据类型—就是说,如果文件符合标准中的任一个 (或两者),就为其指定数据类型。

  1. 为数据类型创建 DATA_ATTRIBUTES 定义。

  2. 为每个标准创建 DATA_CRITERIA 定义。

    使用 DATA_ATTRIBUTES_NAME 字段将每个标准连接到同一个 DATA_ATTRIBUTES 定义。

    例如,下面的定义创建了 Mif 数据类型。分类是基于名称或内容的。

    DATA_ATTRIBUTES Mif
    {
     	ICON								Frame
     	ACTION_LIST						Open,Print
     }
    
     DATA_CRITERIA Mif_Name_Criteria
     {
     	DATA_ATTRIBUTES_NAME				Mif
     	NAME_PATTERN							*.mif
     }
    
     DATA_CRITERIA Mif_Content_Criteria
     {
     	DATA_ATTRIBUTES_NAME		Mif
     	CONTENT							1 string MIFFile
     }