3.3 命令行的通配符

2022-05-27 10:02 更新

大家可能都遇到過提筆忘字的尷尬,作為Linux運維人員,我們有時候也會遇到明明一個文件的名稱就在嘴邊但就是想不起來的情況。如果就記得一個文件的開頭幾個字母,想遍歷查找出所有以這個關(guān)鍵詞開頭的文件,該怎么操作呢?又比如,假設(shè)想要批量查看所有硬盤文件的相關(guān)權(quán)限屬性,一種方式是這樣的:

    [root@linuxprobe ~]# ls -l /dev/sda
    brw-rw----. 1 root disk 8, 0 May 4 15:55 /dev/sda
    [root@linuxprobe ~]# ls -l /dev/sda1
    brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1
    [root@linuxprobe ~]# ls -l /dev/sda2
    brw-rw----. 1 root disk 8, 2 May 4 15:55 /dev/sda2
    [root@linuxprobe ~]# ls -l /dev/sda3
    ls: cannot access /dev/sda3: No such file or directory

幸虧我的硬盤文件和分區(qū)只有3個,要是有幾百個,估計需要花費一天的時間來忙這個事情了。由此可見,這種方式的效率確實很低。雖然我們在第6章才會講解Linux系統(tǒng)的存儲結(jié)構(gòu)和FHS,但現(xiàn)在我們應(yīng)該能看出一些簡單規(guī)律了。比如,這些硬盤設(shè)備文件都是以sda開頭并且存放到了/dev目錄中,這樣一來,即使我們不知道硬盤的分區(qū)編號和具體分區(qū)的個數(shù),也可以使用通配符來搞定。顧名思義,通配符就是通用的匹配信息的符號,比如星號(*)代表匹配零個或多個字符,問號(?)代表匹配單個字符,中括號內(nèi)加上數(shù)字[0-9]代表匹配0~9之間的單個數(shù)字的字符,而中括號內(nèi)加上字母[abc]則是代表匹配a、b、c三個字符中的任意一個字符。

Linux系統(tǒng)中的通配符及含義

通配符 含義
* 任意字符
? 單個任意字符
[a-z] 單個小寫字母
[A-Z] 單個大寫字母
[a-Z] 單個字母
[0-9] 單個數(shù)字
[[:alpha:]] 任意字母
[[:upper:]] 任意大寫字母
[[:lower:]] 任意小寫字母
[[:digit:]] 所有數(shù)字
[[:alnum:]] 任意字母加數(shù)字
[[:punct:]] 標點符號

俗話講“百聞不如一見,看書不如實驗”,下面我們就來匹配所有在/dev目錄中且以sda開頭的文件:

    [root@linuxprobe ~]# ls -l /dev/sda*
    brw-rw----. 1 root disk 8, 0 May 4 15:55 /dev/sda
    brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1
    brw-rw----. 1 root disk 8, 2 May 4 15:55 /dev/sda2

如果只想查看文件名為sda開頭,但是后面還緊跟其他某一個字符的文件的相關(guān)信息,該怎么操作呢?這時就需要用到問號來進行通配了。

    [root@linuxprobe ~]# ls -l /dev/sda?
    brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1
    brw-rw----. 1 root disk 8, 2 May 4 15:55 /dev/sda2

除了使用[0-9]來匹配0~9之間的單個數(shù)字,也可以用[135]這樣的方式僅匹配這三個指定數(shù)字中的一個,若沒有匹配到,則不會顯示出來:

    [root@linuxprobe ~]# ls -l /dev/sda[0-9]
    brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1
    brw-rw----. 1 root disk 8, 2 May 4 15:55 /dev/sda2
    [root@linuxprobe ~]# ls -l /dev/sda[135]
    brw-rw----. 1 root disk 8, 1 May 4 15:55 /dev/sda1
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號