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 ~]# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值