不好描述的通配符

本文通过一系列实例演示了如何使用Linux命令行中的ls命令配合通配符进行文件查找,包括特定字符开头、排除某些字符等复杂情况。

 我们先创建一个实验的目录环境,便于删除:

[root@web ~]# mkdir test;cd test
[root@web test]#

在此目录下创建一些实验所需的文件:

[root@web test]# touch {a,b,c};touch {a,b,c}{a,b,c}{a,b,c}
[root@web test]#

可以看出我们的实验文件有:

[root@web test]# ls
a aab aba abc acb b bab bba bbc bcb c cab cba cbc ccb
aaa aac abb aca acc baa bac bbb bca bcc caa cac cbb cca ccc
[root@web test]#

只显示a,b文件:

[root@web test]# ls [ab]
a b
[root@web test]#

显示非a,b的单个字母的文件:

[root@web test]# ls [^ab]
c
[root@web test]#

显示以字母a或者b开头的文件:

[root@web test]# ls [ab]*
a aaa aab aac aba abb abc aca acb acc b baa bab bac bba bbb bbc bca bcb bcc
[root@web test]#

显示非字母a且非字母b开头的文件:

[root@web test]# ls [^ab]*
c caa cab cac cba cbb cbc cca ccb ccc
[root@web test]#

显示含有字母a或者字母b的文件:

[root@web test]# ls *[ab]*
a aab aba abc acb b bab bba bbc bcb caa cac cbb cca
aaa aac abb aca acc baa bac bbb bca bcc cab cba cbc ccb
[root@web test]#

下面这句我就不知道怎么描述了,也许可以描述显示文件名里含有“a,b以外”的字母的文件:

[root@web test]# ls *[^ab]*
aac abc aca acb acc bac bbc bca bcb bcc c caa cab cac cba cbb cbc cca ccb ccc
[root@web test]#

[root@web test]# touch a.a
[root@web test]# ls *[^ab]*
a.a aac abc aca acb acc bac bbc bca bcb bcc c caa cab cac cba cbb cbc cca ccb ccc
[root@web test]#

 好吧,我们来个显示含有字母a的文件,再来个显示含有“a以外”的文件:

[root@web test]# ls *a*
a a.a aaa aab aac aba abb abc aca acb acc baa bab bac bba bca caa cab cac cba cca
[root@web test]# ls *[^a]*
a.a aac abb aca acc baa bac bbb bca bcc caa cac cbb cca ccc
aab aba abc acb b bab bba bbc bcb c cab cba cbc ccb
[root@web test]#

思考下,怎么显示不含有a字母的文件(我也是醉了):

[root@web test]# ls [^a]*[^a]*[^a]
bbb bbc bcb bcc cbb cbc ccb ccc

b,c文件却没有显示,貌似不好实现

 

转载于:https://www.cnblogs.com/mrlajie/p/6354467.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值