07、bash的基础特性之三:文件名通配机制(globbing)

本文详细介绍了Bash中的文件名通配符机制,包括*、?、[]和[^]等元字符的用法,并通过多个实例展示了如何在实际操作中应用这些匹配模式进行文件和目录的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

匹配模式:元字符

1.  *:匹配任意长度的任意字符

2.   ?:匹配任意单个字符

3.   [ ]:匹配指定范围内的任意单个字符
             有几种特殊格式:
                    [a-z], [A-Z], [0-9], [a-z0-9]
                    [[:upper:]]:所有大写字母
                    [[:lower:]]:所有小写字母
                    [[:alpha:]]:所有字母
                    [[:digit:]]:所有数字
                    [[:alnum:]]:所有的字母和数字
                    [[:space:]]:所有空白字符
                    [[:punct:]]:所有标点符号

4.   [^]:匹配指定范围外的任意单个字符
                [^[:upper:]]
                [^0-9]
                [^[:alnum:]]

 

实例1:
           显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位任意字符的文件或目录;
            ls -d /var/l?[[:lower:]]

实例2:
           显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
           ls -d /etc/[0-9]*[^0-9]

实例3:
           显示/etc目录下,以非字母开头,后面跟一个字母及其它任意长度任意字符的文件或目录;
           ls -d /etc/[^ [:alpha:]][a-z]*

实例4:
           复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/com目录;
           cp -r /etc/m*[^0-9] /tmp/com/

 实例5:
           复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录至/tmp/man/目录下;
           cp -r /usr/share/man/man[0-9] /tmp/man/

实例6:
            复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/conf.d/目录下;
            cp -r /etc/[mnrp]*.conf /tmp/conf.d/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值