Linux——字符通配符
Posted 0715mmmm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux——字符通配符相关的知识,希望对你有一定的参考价值。
当我们使用 命令ls 来查看目录或文件时,有时只需要查看特定的目录或文件,这个时候便需要使用文件名通配符,也称字符通配符。
在这里需要特别说明,在cd /etc/后,转到etc目录下,使用 ls时,需要加上 选项 –d 这样结果显示目录名或文件名,不会将目录展开显示。也可不加。
至于对ls命令的用法想了解的可自行查找。
接下来,我将对通配符通过举例来进行解释说明。
1.) * :用来匹配0或多个任意字符
例如: ls * 查找/etc下的任意字符的文件或目录
[[email protected] etc]# ls -d * 3dkdj maven 3fgfj mime.types 3fgfj[] mke2fs.conf 3jsjdl[] modprobe.d abrt motd acpi mtab
2.) ? :匹配任意1个字符,即一个字符匹配一个字符
例如 :ls ??? 查找/etc下的长度为任意三个字符的文件或目录
[[email protected] etc]# ls -d ??? 253 786 hal jvm lvm opt ppp rpm ssh X11 xml 333 gdm ipa kde ntp pki rpc scl ssl xdg yum
3.) [0-9] :一个[0-9]只表示一个0-9之间的数字
例如 :ls [0-9] [1-2][0-9] 3[0-9]使用touch {1..100} 创建1到100这100个文件,显示1-35
[[email protected] etc]# ls [0-9] [1-2][0-9] [3][0-5] 1 11 13 15 17 19 20 22 24 26 28 3 31 33 35 5 7 9 10 12 14 16 18 2 21 23 25 27 29 30 32 34 4 6 8
4.) [a-z] : 表示aAbBcC……z,无法显示Z
[A-Z]: 表示AbBcC……Z,无法显示z
[a-Z] : 表示所有大小写字母
eg: 查找/etc 目录下 开头为任意字母的长度为三的文件或目录
[[email protected] etc]# ls -d [a-z]?? gdm ipa kde ntp pki rpc scl ssl xdg yum hal jvm lvm opt ppp rpm ssh X11 xml
5.) [ae] : 表示是a或e的单一字符
[^ae] :表示即不是a也不是e的其他任意单一字符
eg: 只显示/etc下的非隐藏目录
[[email protected] etc]# ls -d /[^.]* /app /lib64 /proc /tmp /bin /lost+found /root /usr /boot /media /sbin /var /dev /misc /selinux /VMwareTools-10.1.6-5214329.tar.gz /etc /mnt /srv /vmware-tools-distrib /home /net /sys /lib /opt /testdir
eg: 只显示用户家目录下的非隐藏目录
1 [[email protected] ~]# ls -1 /home/[^.]* 2 /home/centos: 3 Desktop 4 Documents 5 Downloads 6 Music 7 Pictures 8 Public 9 Templates 10 Videos 11 12 /home/www:
6.) [:lower:]: 表示小写字母
[:upper:]:表示大写字母
[:alpha:]: 表示大小写字母
eg: 显示/etc目录下,文件名至少包含一个小写字母和一个数字并以.conf结尾的文件或目录
(ps:选项-1为将ls 查找的结果单项列出)
1 [[email protected] ~]# ls -d1 /etc/*[[:lower:]]*[0-9]*.conf 2 /etc/krb5.conf 3 /etc/mke2fs.conf 4 /etc/pbm2ppa.conf 5 /etc/pnm2ppa.conf
7.) [:digit:] :表示任意数字 等于0-9
[:alnum:]: 表示任意字母及数字 等于a-Z0-9或用[[:digit:][:alpha:]]来表示
eg:显示/etc目录下,所有以一个大写字母开头,以两个数字结尾的文件或目录
1 [[email protected] ~]# ls -d1 /etc/[[:upper:]]*[[:digit:]][[:digit:]] 2 /etc/Kdhu67 3 /etc/Ldf88 4 /etc/S0099 5 /etc/Sdjfdjg988 6 /etc/Sdjfdjg9897 7 /etc/X11
eg:显示/var/log目录下文件名包含符号及数字的文件或目录
1 [[email protected] ~]# ls -d1 /var/log/*[[:punct:]]*[[:digit:]]* 2 /var/log/btmp-20191120 3 /var/log/cron-20191120 4 /var/log/maillog-20191120 5 /var/log/messages-20191120 6 /var/log/secure-20191120 7 /var/log/spooler-20191120 8 /var/log/vmware-vgauthsvc.log.0 9 /var/log/Xorg.0.log 10 /var/log/Xorg.0.log.old 11 /var/log/Xorg.9.log
8.)[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符 文件名不可能包含回车,故此处使用与[:blank:]:效果相同
9.)[:punct:]: 表示符号
使用方法见用法7中的例题。
以上是关于Linux——字符通配符的主要内容,如果未能解决你的问题,请参考以下文章