Linux命令环境中的通配符有哪些?它们的不同点是什么?

Linux命令环境中的通配符有哪些?它们的不同点是什么?,第1张

通配符 1、基本的通配符有哪些? ·“?”可替代单个字符。 ·“*”可替代任意字符。 ·方括号“[charset]”可替代charset集中的任何单个字符。 对最后一条做些解释。[cChH]通配符便可替代c或h字符的大小写形式。 通配符集还能描述介于字符对之间的所有字符。如“[a-z]”就可以代 替任意小写字母,而[a-zA-Z]则可替代任意字母。注意可替代的字符 包括字符包括字符对之间的所有字符。 与DOS相比,UNIX的通配符机制要比DOS好得多。在DOS中,任何在“*” 之后,在“.”之彰的字符均被忽略,所以下面的指令将不能得到你想 象的结果。 del *bak.* 在DOS中,用户只能用此命令删除当前目前下的所有文件,除非系统要 求你不这样做。而在UNIX系统中,“*”可替代包括0在内的任意数字的 字符,但一行中的其余特征也仍需匹配,因此“bak.*”可匹配 newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因为后 者不含“.”。这非常巧妙,可大大方便用户,而“*bak”则可匹配以上 所有的词条,包括newbak。 2、能在一条指令中用多个通配符吗? 可以,如 rm a*out*tmp? 该命令可以删除一系列临时性的输出文件,如ab.out.temp1、ab.out.temp1 等。 3、如何利用通配符使指令更灵活? UNIX可将有一定关的文件看作一集合的一部分,用户可以用该集合去匹配。 所以,如果你需要删除file1.temp、file2.temp……file9.temp,只须健入: rm file[0-9].temp 该技巧的用处在于可以用删除那些相要删除的文件。如果你每天都要为一个 非常重要的 数据库 做一个“dump”报告,你把文件存入dump.date%h%d, 它包括一系列文件如下: dump.jun23 dump jun24 dump jun25 dump.jun26 再让我们假设因为每个文件的容量都在100M左右,所以磁盘空间很快会被占满, 因此需要每隔几天删去一些老的文件,只留下最近的两个文件,为此,键入: rm –i du*[34] 这条指令将删去那些以“du”开头并以“3”或“4”结尾的文件。

文件通配符* 匹配零个或多个字符 ? 匹配任何单个字符 ~ 当前用户家目录 ~mage 用户mage家目录 ~+ 当前工作目录 ~- 前一个工作目录 [0-9] 匹配数字范围 [a-z]:字母(或的关系)就是表示中括号中的某一个字符 [A-Z]:字母 [a-c]:a A b B c [A-C]:A b B c C,也就是[]在里面匹配字母时是以aAbB...这样排序的 [wang] 匹配列表中的任何的一个字符 [^wang] 匹配列表中的所有字符以外的字符 {}花括号用来匹配一组用逗号分隔的字符串中的任一个。 左花括号之前的所有字符称为前文(preamble),右花括号之后的所有字符称为后文(preamble)。 前文和后文都是可选的。花括号中不能包含不加引号的空白符预定义的字符类:man 7 glob(通配符) [:digit:]:任意数字,相当于0-9 [:lower:]:任意小写字母[:lower:] 这个只相当于a-z,表示的时候必须要在加上中括号 [:upper:]: 任意大写字母 [:alpha:]: 任意大小写字母 [:alnum:]:任意数字或字母 [:blank:]:水平空白字符 [:space:]:水平或垂直空白字符 [:punct:]:标点符号 [:print:]:可打印字符 [:cntrl:]:控制(非打印)字符 [:graph:]:图形字符 [:xdigit:]:十六进制字符ls命令的功能: 列出当前目录的内容或指定目录ls命令的用法:ls [options] [files_or_dirs]         示例:                 ls -a 包含隐藏文件                 ls -l 显示额外的信息                 ls -r 倒转排序或者可以说是逆序排列                 ls -R 目录递归通过(递归会进入到子目录)                 ls -ld 目录和符号链接信息                 ls -1  文件分行显示(列显示)                 ls –S  按从大到小排序(按文件的大小排序)                 ls –t  按mtime排序(按文件的修改时间排序)                 ls –u 配合-t选项,显示并按atime从新到旧排序                 ls –U  按目录存放顺序显示(以创建文件的次序进行显示)                 ls –X  按文件后缀排序                 ls -d  列出目录本身并不显示内容                 ls -h  单位换算                 ls -I  --ignore(忽略)=PATTERN(模式)按着规定的模式去隐藏不进行显示 实例: 1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数 字的文件或目录 ls -d /var/l*[0-9]*[[:lower:]] 2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录 ls -d /etc/[0-9]*[^0-9] 3、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符 的文件或目录 ls -d /etc/[^[:alpha:]][[:alpha:]]* 4、显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符 的文件或目录 ls -d /etc/rc[0-6]* 5、显示/etc目录下,所有以.d结尾的文件或目录 ls -d /etc/*.d 6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录 ls -d /etc/[mnrp]*.conf 7、只显示/root下的隐藏文件和目录 ls -d /root/.* ls -aI "[^.]*"  当前目录为/root l. ls -d .* --color=auto 当前目录为/root 8、只显示/etc下的非隐藏目录 ls -d /etc/*/

这个是属于“正则表达式”的知识,你先找一下这方面的教程学习一下,

百度一下“正则表达式”即可。这是在编写程序、查找和处理与字符串时的一项技术。

简单一个例子吧。比如你想查找一份文件,具体的名字忘了,但记得文件名是数字开头的,

那么可以这样查找这个文件:

find / -name "[0-9]*"

这样就找出所有数字开头的文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8890213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存