[[email protected] ~]# cd /etc
[[email protected] etc]# cd fs <-- 按一次 Tab 鍵
[[email protected] etc]# cd b <-- 連續按兩次 Tab 鍵 bash_completion.d/ blkid/ bonobo-activation/ bashrc bluetooth可以看到,當按一次 Tab 鍵時,Shell 沒有任何反映,原因就是當前目錄下以 "b" 為開頭的檔案或目錄有多個(2 個以上),僅憑一個字元 "b" 無法精準判斷出具體指的是哪個檔案。而當再一次按下 Tab 鍵時,Shell 會列表的形式顯示給使用者當前目錄下所有以 "b" 開頭的檔案或目錄。
[[email protected] etc]# ca <--連續按兩次 Tab 鍵 cacertdir_rehash cache_restore capsh catchsegv cache_check cal captoinfo cache_dump caller case cache_repair canberra-gtk-play cat另外,Shell 還有一套被稱作萬用字元的轉用符號(如表 1 所示),這些萬用字元可以搜尋並匹配檔名的一部分,從而大大簡化了檔名的輸入。
符號 | 作用 |
---|---|
* | 匹配任意數量的字元。 |
? | 匹配任意一個字元。 |
[] | 匹配括號內的任意一個字元,甚至 [] 中還可以包含用 -(短橫線)連線的字元或數位,表示一定範圍內的字元或數位。 |
[[email protected] etc]# makdir test
[[email protected] etc]# cd test
[[email protected] test]# touch apple banana grape grapefruit watermelon
[[email protected] test]# ls
apple banana grape grapefruit watermelon
[[email protected] test]# ls a* <--匹配所有以 a 字元開頭的檔名
apple
[[email protected] test]# ls g*t <--匹配所有以 g 字元開頭,以 t 字元結尾的檔名
grapefruit
[[email protected] test]# ls *e* <--匹配所有包含 e 字元的檔名
apple grape grapefruit watermelon
[[email protected] test]# ls *n* <--匹配所有包含 n 字元的檔名
banana watermelon
[[email protected] test]# ls ????e
apple grape
[[email protected] test]# ls g???e*
grape grapefruit
[[email protected] test]# ls [abw]*
apple banana watermelon
[[email protected] test]# ls [agw]*[ne]
apple grape watermelon
[[email protected] test]# ls [a-g]*
apple banana grape grapefruit