《关于通配符》
1.什么是通配符
通配符是一种特殊语句,主要有星号()和问号(?),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。
实际上用“Not?pad”可以对应Notepad\MyNotepad【*可以代表任何字符串;?仅代表单个字符串,但此单字必须存在】;Notep[ao]d可以对应Notepad\Notepod【ao代表a与o里二选一】,其余以此类推。
星号(*)
可以使用星号代替零个、单个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。
问号(?)
可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。
通配符包括星号“”和问号“?”
星号表示匹配的数量不受限制,而后者的匹配字符数则受到限制。这个技巧主要用于英文搜索中,如输入“computer”,就可以找到“computer、computers、computerised、computerized”等单词,而输入“comp?ter”,则只能找到“computer、compater、competer”等单词。
2.优先级
对于使用通配符模式的各种资源,Tivoli Access Manager for Operating Systems 必须确定将应用何种通配符模式。 例如,假设有两种模式:
/usr/local/.log 和 /usr/local/user1/.log
字符串 /usr/local/user1/x.log 与这两种模式都匹配。
为了解决这种模棱两可的情况,应用了优先级规则。模式越具体,其优先级也越高。根据这种原则,/usr/local/user1/x.log 在与 /usr/local/.log 模式相匹配之前先与 /usr/local/user1/.log 模式相匹配。由于找到一个匹配项,任何可应用于匹配此模式的对象的策略都将适用。
下表显示了通配符元素的优先级。表中较高位置的元素优先于表中较低位置的元素。
优先级 元素 示例
- 精确字符 a, *, \
- 字符范围 [Aa], [[:digit:]]
- 任意字符 ?
- 重复的精确字符 a+
- 重复的字符范围 [Aa]+, [[:digit:]]+
- 重复的任意字符 ?+
- 任意字符串 *
根据资源的种类,将通过从开始到结束(或者相反方向)逐个元素比较模式来确定优先级。匹配文件名称的模式是从开始比较到结束。匹配主机名称的模式是从结束比较到开始。
出除了认为相同的两种模式之外,将认为较长的模式比较短的模式更具体,除非较长的字符串是由于星号(*)而较长。
优先级 文件名称模式 主机名称模式
- log/0[0-9]/error
- log/0?/error
- log/0*/error
- log/[0-9]+/error.1
- log/*/error.1
- log*/error.1
- log*/error
- log/error *
- log*
- *