一些使用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.pdf
a-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 .
會更好。——譯者注