一些使用glob模式的基本例子有时被称为globbing,如表B-2所示。
表B-2 glob模式示例
*.java
匹配所有以.java结尾的字符串,比如Listing_2_1.java??
匹配任意两个字符,比如ab或x1[0-9]
匹配0到9之间的任意数字{groovy, scala}.*
匹配所有以groovy.或scala.开头的字符串,比如scala.txt或groovy.pdfa-z, A-Z
匹配一个大写或小写的英文字符//
匹配/字符/usr/home/**
匹配所有以/usr/home/开头的字符串,比如/usr/home/karianna或/usr/home/karianna/docs要查看更多glob模式匹配的例子,请参见Oracle的在线Java教程及FileSystem
类的Java文档。
警告 Java 7规范定义了自己的glob语义(而不是采用已有的标准)。有些可能会变成给程序员挖的坑,特别是在Unix上。比如说,同样是
rm *
,在Java 7中会移除以点(.)开头的文件,而在Unix的rm/glob
中则不会移除这样的文件。1
1 在Unix的glob模式中,如果文件名以”.“开头,则这个字符必须显式匹配。因此rm *
不会移除.profile,并且tar c *
也不会归档所有文件,用tar c .
会更好。——译者注