Linux萬用字元(轉)

ba發表於2007-08-10
Linux萬用字元(轉)[@more@]萬用字元

1、基本的萬用字元有哪些?

·“?”可替代單個字元。

·“*”可替代任意字元。

·方括號“[charset]”可替代charset集中的任何單個字元。

對最後一條做些解釋。[cChH]萬用字元便可替代c或h字元的大小寫形式。
萬用字元集還能描述介於字元對之間的所有字元。如“[a-z]”就可以代
替任意小寫字母,而[a-zA-Z]則可替代任意字母。注意可替代的字元
包括字元包括字元對之間的所有字元。

與DOS相比,UNIX的萬用字元機制要比DOS好得多。在DOS中,任何在“*”
之後,在“.”之彰的字元均被忽略,所以下面的指令將不能得到你想
象的結果。

del *bak.*

在DOS中,使用者只能用此命令刪除當前目前下的所有檔案,除非系統要
求你不這樣做。而在UNIX系統中,“*”可替代包括0在內的任意數字的
字元,但一行中的其餘特徵也仍需匹配,因此“bak.*”可匹配
newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因為後
者不含“.”。這非常巧妙,可大大方便使用者,而“*bak”則可匹配以上
所有的詞條,包括newbak。



2、能在一條指令中用多個萬用字元嗎?

可以,如

rm a*out*tmp?

該命令可以刪除一系列臨時性的輸出檔案,如ab.out.temp1、ab.out.temp1
等。



3、如何利用萬用字元使指令更靈活?

UNIX可將有一定關的檔案看作一集合的一部分,使用者可以用該集合去匹配。
所以,如果你需要刪除file1.temp、file2.temp……file9.temp,只須健入:

rm file[0-9].temp

該技巧的用處在於可以用刪除那些相要刪除的檔案。如果你每天都要為一個
非常重要的資料庫做一個“dump”報告,你把檔案存入dump.'date%h%d',
它包括一系列檔案如下:

dump.jun23

dump jun24

dump jun25

dump.jun26

再讓我們假設因為每個檔案的容量都在100M左右,所以磁碟空間很快會被佔滿,
因此需要每隔幾天刪去一些老的檔案,只留下最近的兩個檔案,為此,鍵入:

rm –i du*[34]

這條指令將刪去那些以“du”開頭並以“3”或“4”結尾的檔案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-941680/,如需轉載,請註明出處,否則將追究法律責任。

相關文章