在 bash 下,可以使用 * 來匹配零個或多個字符,用 ? 匹配一個字符
*
號
*.txt
查看當前目錄下的所有 .txt 後綴的文件
[root@evan-01 ~]# ls
11.txt anaconda-ks.cfg ojbk.txt test2 test2.txt.bak test3.txt.bak
1.txt anaconda-ks.cfg.bak test test2_heard.txt test3_soft.txt txtdir
[root@evan-01 ~]# ls *.txt
11.txt 1.txt ojbk.txt test2_heard.txt test3_soft.txt
[root@evan-01 ~]#
*txt
查看當前目錄下的所有 .txt 後綴的文件(寫成 *.txt 和 *txt 是一樣的)
[root@evan-01 ~]# ls
11.txt anaconda-ks.cfg ojbk.txt test2 test2.txt.bak test3.txt.bak
1.txt anaconda-ks.cfg.bak test test2_heard.txt test3_soft.txt txtdir
[root@evan-01 ~]# ls *txt
11.txt 1.txt ojbk.txt test2_heard.txt test3_soft.txt
[root@evan-01 ~]#
*txt*
把當前目錄下帶txt的文件都列出來
[root@evan-01 ~]# ls
11.txt anaconda-ks.cfg ojbk.txt test2 test2.txt.bak test3.txt.bak
1.txt anaconda-ks.cfg.bak test test2_heard.txt test3_soft.txt txtdir
[root@evan-01 ~]# ls *txt*
11.txt 1.txt ojbk.txt test2_heard.txt test2.txt.bak test3_soft.txt test3.txt.bak
txtdir:
1.txt 2.txt 3.txt
[root@evan-01 ~]#
1*
把當前目錄下帶 1的所有文件和目錄都列出來
[root@evan-01 ~]# ls
11.txt anaconda-ks.cfg ojbk.txt test2 test2.txt.bak test3.txt.bak
1.txt anaconda-ks.cfg.bak test test2_heard.txt test3_soft.txt txtdir
[root@evan-01 ~]# ls 1*
11.txt 1.txt
[root@evan-01 ~]#
?號
代表任意的一個字符
[root@evan-01 ~]# touch 1.txt
[root@evan-01 ~]# touch 2.txt
[root@evan-01 ~]# touch 3.txt
[root@evan-01 ~]# ls
11.txt 2.txt anaconda-ks.cfg ojbk.txt test2 test2.txt.bak test3.txt.bak
1.txt 3.txt anaconda-ks.cfg.bak test test2_heard.txt test3_soft.txt txtdir
[root@evan-01 ~]# ls ?.txt
1.txt 2.txt 3.txt
[root@evan-01 ~]#
[root@evan-01 ~]# touch a.txt
[root@evan-01 ~]# touch bb.txt
[root@evan-01 ~]# ls ?.txt
1.txt 2.txt 3.txt a.txt
[root@evan-01 ~]#
列出來的有 1.txt 2.txt 3.txt a.txt 沒有 bb.txt 。因爲 ? 只能代表任意的一個字符
[ ] 號
[0-3].txt 列出文件名0-3範圍,後綴爲.txt的文件
[root@evan-01 ~]# ls
11.txt 2.txt anaconda-ks.cfg a.txt ojbk.txt test2 test2.txt.bak test3.txt.bak
1.txt 3.txt anaconda-ks.cfg.bak bb.txt test test2_heard.txt test3_soft.txt txtdir
[root@evan-01 ~]# ls [0-3].txt
1.txt 2.txt 3.txt
[root@evan-01 ~]#
[13].txt 列出文件名爲1或3,後綴爲.txt的文件
[root@evan-01 ~]# ls
11.txt 2.txt anaconda-ks.cfg a.txt ojbk.txt test2 test2.txt.bak test3.txt.bak
1.txt 3.txt anaconda-ks.cfg.bak bb.txt test test2_heard.txt test3_soft.txt txtdir
[root@evan-01 ~]# ls [13].txt
1.txt 3.txt
[root@evan-01 ~]#
[1-3a-zA-Z].txt 列出文件名爲1-3範圍或a-z範圍或A-Z範圍,後綴爲.txt的文件
[root@evan-01 ~]# ls
11.txt 2.txt anaconda-ks.cfg a.txt ojbk.txt test2 test2.txt.bak test3.txt.bak
1.txt 3.txt anaconda-ks.cfg.bak bb.txt test test2_heard.txt test3_soft.txt txtdir
[root@evan-01 ~]# ls [1-3a-zA-Z].txt
1.txt 2.txt 3.txt a.txt
[root@evan-01 ~]#
{ } 號
{}號把所有要列出的文件名用 , 隔開放進來,也是或者關係
[root@evan-01 ~]# ls
11.txt 2.txt anaconda-ks.cfg a.txt ojbk.txt test2 test2.txt.bak test3.txt.bak
1.txt 3.txt anaconda-ks.cfg.bak bb.txt test test2_heard.txt test3_soft.txt txtdir
[root@evan-01 ~]# ls {1,3,a,bb}.txt
1.txt 3.txt a.txt bb.txt
[root@evan-01 ~]#