Linux三種通配符

基本的通配符有以下幾個:

?    可替代單個字符

*    可替代多個字符

[charset]    可替代charset集中的任意單個字符

下面以例子加以說明:

如文件夾中有這些文件foo1, ..., foo9, foo10, ..., foo278,如果使用

rename foo foo0 foo?

則它只會把foo1到foo9的文件重命名爲foo01到foo09,因爲?通配符只能替代單個字符,所以被重命名的文件只是有4個字符長度名稱的文件,文件名中的foo被替換爲foo0。

再繼續使用

rename foo foo0 foo??

則文件夾中的foo01到foo99的所有文件都被重命名爲foo001到foo099,而foo100及其以後的文件名都不變,因爲通配符?的使用,所以只重命名5個字符長度名稱的文件,文件名中的foo被替換爲foo0。

如果再繼續使用

rename foo foo0 foo*

則foo001到foo278的所有文件都被重命名爲foo0001到foo0278,因爲通配符*可替代多個字符,所以,所有以foo開頭的文件都被重命名了,文件名中的foo被替換爲foo0。

我們再來看通配符[charset]的用法,還是繼續在上面所說的文件夾中,執行如下命令

rename foo0 foo foo0[2]*

則從foo0200到foo0278的所有文件都被重命名爲foo200到foo278,文件名中的foo0被替換爲foo。

在使用中,三種通配符可以一起結合使用,關於具體的其它用法就只有自己不斷的摸索了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章