Home » Code » Linux » Linux基础知识之文件名匹配

Linux基础知识之文件名匹配

*,匹配任意长度的任意字符。

?,匹配任意单个字符。

[],匹配指定范围内的任意单个字符,有几种特殊格式:

  • [a-z],[A-Z],二者一样,不区分大小写,表示a~z中的任意一个字母
  • [0-9],0~9任意一个数字
  • [a-z0-9],任意一个字母或任意一个数字
  • [[:upper:]],所有大写字母
  • [[:lower]],所有小写字母
  • [[:alpha:]],所有字母
  • [[:digit:]],所有数字
  • [[:alnum:]],所有的字母和数字
  • [[:space:]],所有空白字符
  • [[:punct:]],所有标点符号
[^],匹配指定范围外的任意单个字符。如非大写字母外的所有字符[^[:upper:]],非数字[^[0-9]],非字母数字[^[:alnum]]。

练习

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

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

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

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

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 /etc/conf.d/

——来自51cto-马哥Linux免费视频教程。

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Time limit is exhausted. Please reload CAPTCHA.