Linux文件名匹配之通配符使用

Linux文件通配符:
当在使用命令行时,有很多时间都用来查找你所需要的文件,如ls、find等。 shell提供了一套完整的字符串模式匹配规则,或者称之为元字符,当shell遇到上述字符时,就会把它们当作特殊字符,而不是文件名中的普通字符,这样用户就可以用它们来匹配相应的文件名,我理解这可以称为通配符。

通配符 作用
* 匹配零个或多个字符
匹配任何单个字符
~ 当前用户家目录
~mage 用户mage家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z] 字母
[A-Z] 字母
[abcd] 匹配列表中的任何的一个字符,即包含a或b或c或d
[^abcd] 匹配列表中的所有字符以外的字符
[:digit:] 任意数字,相当于0-9
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:blank:] 水平空白字符
[:space:] 水平或垂直空白字符
[:punct:] 标点符号
[:print:] 可打印字符
[:cntrl:] 控制(非打印) 字符
[:graph:] 图形字符
[:xdigit:] 十六进制字符

例如:
显示/etc目录下,所有以.d结尾的文件或目录:

显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录:

只显示/root下的隐藏文件和目录:

只显示/etc下的非隐藏目录:

原文地址:https://blog.51cto.com/14231130/2372668

时间: 2024-11-13 06:26:48

Linux文件名匹配之通配符使用的相关文章

linux文件名匹配——通配符使用

背景:在linux使用过程中,经常需要查找文件,对命令中的通配符pattern和正则表达式的区分不是很清楚.有必要好好研究一下. 1 扫盲 1.1 通配符和正则表达式 当在使用命令行时,有很多时间都用来查找你所需要的文件,如ls find等. S h e l l提供了一套完整的字符串模式匹配规则,或者称之为元字符,当s h e l l遇到上述字符时,就会把它们当作特殊字符,而不是文件名中的普通字符,这样用户就可以用它们来匹配相应的文件名,我理解这可以称为通配符. 通配符与正则表达式是有区别的,简

linux文件名通配符:* ? []

通配符命令简介: 匹配符合相关条件的符号,匹配文件名查找. 通配符类型: *:匹配任意长度的任意字符 ?:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [^]:匹配指定范围之外的任意单个字符 [:space:]:空白字符 [:punct:]:标点符号 [:lower:]:小写字母 [:upper:]:大写字母 [:alpha:]:大小写字母 [:digit:]:数字 [:alnum:]:数字和大小写字母 通配符命令实例练习: 1.创建a123,cd6,c78m,cl my,m.z,k 6

shell 正则表达式与文件名匹配

1) . : 匹配任意单ASCII 字符,可以为字母,或为数字.2) 举例: ..XC..匹配deXC1t.23XCdf等,.w..w..w.匹配rwxrw-rw-行首以^匹配字符串或字符序列1) ^ : 允许在一行的开始匹配字符或单词.2) 举例: ^.01 匹配0011cx4.c01sdf 等,^d 匹配drwxr-xr-x.drw-r--r--等 行尾以$匹配字符串或字符 1) $ : 在行尾匹配字符串或字符,$符号放在匹配单词后.2) 举例: trouble$ 匹配以单词trouble结

linux文件名乱码时删除或改名的方式(转载)

转自:http://www.linuxsa.cn/when-linux-file-name-topsy-turvy-deleted-or-renamed.html linux文件名乱码时删除或改名的方式 当......一堆......文件出现乱码时,你想用脚本把他们改名,结果又发现字符处理工具awk等都对这些玩意没有办法,无比蛋疼啊,怎么办泥,我有办法: 1.ls -i 查找到这些乱码文件的inode号,比如说22588202.find . -inum 2258820 -exec mv {} n

Linux文件名小写的好处(转)

说明:来自老阮的为什么文件名要小写的文章,其实我觉得应该说是Linux文件名为什么要小写会更合适些. 一.可移植性 Linux 系统是大小写敏感的,而 Windows 系统和 Mac 系统正好相反,大小写不敏感.一般来说,这不是大问题. 但是,如果两个文件名只有大小写不同,其他都相同,跨平台就会出问题. foobar Foobar FOOBAR fOObAr 上面四个文件名,Windows 系统会把它们都当作foobar.如果它们同时存在,你可能没办法打开后面三个文件. 另一方面,在 Mac 系

linux终端中的通配符

通配符是一种特殊语句,主要有星号(*)和问号(?),用来对对字符串进行模糊匹配(比如文件名,参数名).当查找文件夹时,可以使用它来代替一个或多个真正字符:当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符. 终端里面输入的通配符是由 Shell 处理的,不是由所涉及到命令语句处理的,它只会出现在命令的"参数值"里(它不用在 命令名称里, 命令不记得,那就用Tab补全).当 Shell 在"参数值"中遇到了通配符时,Shell 会将其当作路

linux入门基础之通配符

        globbing:文件名通配机制(这个是整体的文件名的匹配,而不是部分文件名)   //注意这里指的是文件名称 匹配模式: *:匹配任意长度的任意字符 pa*:所有以pa开头的文件,*pa*,*pa,*pa*a*pa,paa,passwd ?:匹配任意单个字符pa?,??pa,p?a,p?a?pa(不符合pa?),paa,passwd []:匹配指定范围内的任意单个字符 有几种特殊机制[a-z](默认不区分大小写),[A-Z](默认不区分大小写),[0-9],[a-z0-9][[

linux查看匹配内容的前后几行(转)

linux系统中,利用grep打印匹配的上下几行 如果在只是想匹配模式的上下几行,grep可以实现. $grep -5 'parttern' inputfile //打印匹配行的前后5行 $grep -C 5 'parttern' inputfile //打印匹配行的前后5行 $grep -A 5 'parttern' inputfile //打印匹配行的后5行 $grep -B 5 'parttern' inputfile //打印匹配行的前5行 //搜索inputfile中满足partter

linux 正则匹配小记

1.使用正则匹配文件名 ## grep -n '[^\/][a-zA-Z0-9]*[.a-zA-Z0-9][a-zA-Z0-9]*$' regular_express.txt /etc/init.d/hello.h /etc/init.d/hehe 2.使用sed提取出网卡IP (1) # ifconfig eth0 |grep 'inet addr' inet addr:192.168.211.129  Bcast:192.168.211.255  Mask:255.255.255.0 (2)