美文网首页
CentOS 命令行 glob 匹配的介绍和使用

CentOS 命令行 glob 匹配的介绍和使用

作者: 镇虎 | 来源:发表于2020-12-22 12:24 被阅读0次

在 CentOS 的命令行中使用命令的时候,如果不使用正则相关的命令,我们是否可以使用类似正则的匹配呢,比如在使用 ls、find、rm 等命令时?

glob 匹配正是您所需要的。此匹配规则在 CentOS 手册页的 glob 条目的第七类中可以找到。 命令 man 7 glob 可查询此信息。

glob 匹配类型

glob 具有四种匹配类型,分别为通配符(wildcard)、字符类(Character classes)、范围(Ranges)和反(Complementation)匹配。

通配符匹配(wildcard)

单个字符串就是一个通配符匹配,但在此字符串中如有 ?、* 或 [ 符号时,将会启用匹配扩展。

* 匹配 0 至 n 个任意字符。
? 匹配任意单个字符。

字符类匹配(Character classes)

[] 匹配括号内用逗号分隔的字符集合中的任意单个字符。

[][!] 将匹配 ]、[、! 三个字符中的任意一个字符。

范围匹配(Ranges)

[start_char-end_char] 方括号加连字符方式,可以匹配多个连续字母字符或递增数字字符集合中的任意单个字符。

[A-Fa-f0-9] 等同 [ABCDEFabcdef0123456789]

反匹配(Complementation)

[!character_set] 方括号中使用感叹号,可以匹配所有字符集合中的,但不包括在感叹号后字符集合的任意单个字符。

[!]a-] 将匹配除了 ]、a、、- 字符的所有字符集合中的任意单个字符。

注意事项

在 shell 命令行中,转译字符 \ 可以取消 ?*[ 的特殊功能,但在方括号中的字符表示愿意,如 [[?*\] 匹配其中四个字符。

在对路径名匹配中, / 字符不能被 ?*或像 "[.-0]" 范围匹配所匹配。在范围匹配中包含 / ,是语法错误。

文件名以 . 为起始时,无法被 * 匹配,必须显式的匹配点号。

rm * 命令不会删除所有文件。
tar c * 命令不会打包所有文件,tar c . 就好多了。

相关文章

  • CentOS 命令行 glob 匹配的介绍和使用

    在 CentOS 的命令行中使用命令的时候,如果不使用正则相关的命令,我们是否可以使用类似正则的匹配呢,比如在使用...

  • Python模块学习 - fnmatch & glob

    介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名的标准库。 fnmatch模块 大部分情况下使用...

  • glob 介绍

    glob 最早是出现在类Unix系统的命令行中, 是用来匹配文件路径的。比如,lib/**/*.js 匹配 lib...

  • Python3 标准库概览

    操作系统接口:os 文件通配符:glob 命令行参数: 错误输出重定向和程序终止 字符串正则匹配 数学 访问互联网...

  • python 路径遍历神库 glob

    python标准库之glob介绍 glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。查找文件只用到...

  • glob

    glob匹配规则 glob主要为筛选文件 * 匹配任意 0 或多个任意字符 ? 匹配任意一个字符 [...] 若字...

  • glob表达式

    glob表达式(glob expressions)通配符: * 匹配文件路径中的0个或多个字符,但**不会匹配路径...

  • gulp glob:用来匹配文件路径的,不同语言下有不同的规则。【node-glob】

  • python 操作简记 (递归查找制定后缀文件)(list排序字

    递归查找制定后缀的文件 用到三个库 glob 是用来匹配文件路径的.比如通过glob.glob('path/*'...

  • python的glob模块

    1. glob在Python中作用 python在模块glob中定义了glob()函数,实现了对目录内容进行匹配的...

网友评论

      本文标题:CentOS 命令行 glob 匹配的介绍和使用

      本文链接:https://www.haomeiwen.com/subject/drsdnktx.html