8.4-通配符

在 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 ~]# 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章