`
cnetwei
  • 浏览: 177069 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

glob模式及 . 和 ..

 
阅读更多

glob模式及 . 和 ..

 

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式,它的规则如下:

1、星号(*)匹配零个或任意 多个 字符;

2、 问号(?)只匹配一个任意字符;

3、[abc],匹配任何一个列在方括号中的字符,这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c)

4、 [0-9] or [a-z], 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配,比如 [0-9] 表示匹配所有 0 到 9 的数字,[a-z]匹配从a到z的26个字母;

 

而 . 和 .. 在文件系统中分别表示:当前目录 和 上级(父)目录

 

那么如何构建匹配除了"."和".."外所有文件的glob模式呢?(该问题转自http://lcuc.org.cn/node/163 )

http://lcuc.org.cn/node/163 写道
这样考虑的话会比较简单:

* 匹配所有不以"."开头的文件;

.* 匹配所有所有以"."开头的文件,但包括"."和"..",它们是你想排除的;

.[~.]* (只对较新的shell有效;一些shell用"^"代替"!";POSIX shell必须接受"!",但也可接受"^";所有可移植程序不应该在"["后立即跟随未加引号的"^") ,匹配所有以"."开头,跟随非"."的文件;但它会遗漏"..foo";

.??* 匹配所有开始以"."开头且至少3个字符常。 这避开了"."和"..",但会遗漏如".a"

所以要安全地匹配除了"."和".."的所有文件你需要三个模式,(如果你没有类似".a"的文件名,可以不用第一个模式)

请注意:以上写法,在不同shell下会有具体差异。

分享到:
评论

相关推荐

    前端开源库-glob-uglifyjs.zip

    Glob允许开发者通过简单的模式(如“**/*.js”)来查找和处理符合规则的文件,极大地简化了文件操作。在前端项目中,Glob常被用于自动化构建流程,例如收集所有需要编译或打包的JavaScript、CSS或图像文件。它可以...

    vite5+vue3+ import.meta.glob动态导入vue组件

    `import.meta.glob` 是 Vite 的一个元信息对象,它可以用来动态导入项目中的所有匹配指定模式的文件。例如,如果你有一个 `src/components` 目录,里面包含许多 Vue 组件,你可以使用 `import.meta.glob` 来一次性...

    glob:Glob for C ++ 17

    Unix样式的路径名模式扩展目录快速开始该库有两种版本: 两个文件版本: glob.h和glob.cpp single_include/单个头文件版本没有外部依赖-仅是标准库需要C ++ 17 std::filesystem 如果您不能使用C++17 ,则可以集成。...

    python glob模块学习

    `glob`模块提供了几个关键的函数,分别是`glob.glob()`和`glob.iglob()`。 ##### 1. `glob.glob(pathname, recursive=False)` - **功能**:返回所有匹配给定路径模式的文件路径列表。 - **参数**: - `pathname`:...

    开源项目-gobwas-glob.zip

    通过使用 gobwas-glob,Go 开发者可以在不牺牲性能的情况下,轻松实现 glob 模式的匹配功能,提高代码的效率和可读性。无论是在命令行工具、文件系统操作,还是其他需要进行字符串匹配的场景,它都是一个值得信赖的...

    DotNet.Glob:.NET .NETStandard应用程序的快速glob库。 胜过正则表达式

    点网 .NET的快速(可能是最快)的全局库。 科 建立状态 NuGet 主 开发 该库不使用正则表达式-我想做得更快。 最新的基准测试表明DotNet.Glob性能优于DotNet.Glob... 从模式解析全局 var glob = Glob.Parse("p?th/*

    前端开源库-gitignore-to-glob.zip

    然而,将这些规则转换为glob模式,以便在其他工具或库中使用,是一个常见的需求。`gitignore-to-glob`就是这样一款开源库,它能够帮助开发者高效地实现这个功能。本文将深入探讨`gitignore-to-glob`的原理、使用方法...

    node-glob:node.js的glob功能

    球状使用外壳使用的模式(例如星星和东西)匹配文件。 这是JavaScript中的全局实现。 它使用minimatch库进行匹配。用法用npm安装npm i globvar glob = require ( "glob" )// options is optionalglob ( "**/*.js" , ...

    极小的超微节点,速度快〜350%,可替代node-glob-Node.js开发

    微小的glob微小且极其快速的库,可使用glob模式匹配文件和文件夹。 “ Globs”是用于匹配文件和文件夹的特定类型的模式的通用名称。 这是您的微小glob模式的模式,微小而又快速的库可以使用glob模式匹配文件和文件夹...

    Node.js-tinyglob一个超级微小和更快〜350%的node-glob替代品

    描述中提到的“微小而且速度极快的库,可以使用全局模式来匹配文件和文件夹”,进一步强调了`tiny-glob`的主要特性:体积小,执行速度快,以及支持glob模式。`glob`模式是一种包含通配符的字符串,用于表示一组...

    glob, 支持与 Unix shell 样式模式匹配的文件路径.zip

    glob, 支持与 Unix shell 样式模式匹配的文件路径 glob支持与 Unix shell 样式模式匹配的文件路径。 文档文档用法要使用 glob,请将它的添加到你的Cargo.toml 中:[dependencies]glob = "0.2"然后将它添加到你的

    Pythonglob模块的应用glob文件路径查找.pdf-综合文档

    `, `[]*0[][0-9]`等,这说明在shell脚本或命令行中也可以使用类似的模式来查找和列出文件,但Python的glob模块提供了一种编程方法来实现这一功能。 ### 小结 glob模块提供了一种简便的方法来查找符合特定模式的...

    前端开源库-gitignore-to-glob

    3. 混合使用:`.gitignore`和`glob`模式可以混合使用,以达到更精细的控制。 4. 集成:这个库也适用于其他需要解析或应用`.gitignore`规则的场景,例如代码质量检查工具或自动化部署流程。 总结,`gitignore-to-...

    webpack-glob-entry:简单的功能来转换webpack入口对象中的glob模式

    简单的功能来转换webpack入口对象中的glob模式 安装 npm install webpack-glob-entry --save-dev 用法 只需使用glob模式调用entry函数 var entry = require ( 'webpack-glob-entry' ) module . exports = { entry ...

    read-glob-promise:承诺使用 glob 模式读取文件

    阅读全局承诺 版本: 使用 glob 模式搜索文件并异步读取它们 var readGlob = require ( 'read-glob-promise' ) ;readGlob ( '*.txt' ). then ( function ( bufs ) { bufs ; //=> [, , ...]} ). catch ( function ( ...

    gitignore-globs:将 `.gitignore` 文件解析为一组 glob 模式

    gitignore-globs 将.gitignore文件解析为一组 glob 模式。用法.gitignore: node_modulespackage.json索引.js: var parse = require('gitignore-globs');var globs = parse('.gitignore');console.log(globs);// ...

    Ui界面 tkinter os glob (1).docx

    `glob`模块则可以用来查找符合特定模式的文件路径,这对于构建图形界面应用中涉及文件选择的功能非常有用。 【Tkinter的更多组件】除了Label、Entry和Button,Tkinter还有Text组件,用于多行文本编辑;Listbox组件...

    resolveGlobArray:解析 glob 模式数组

    总结来说,`resolveGlobArray`是JavaScript开发中的一个实用工具,它简化了对glob模式数组的处理,使得开发者能够更加灵活地处理文件和目录,特别是在构建脚本、自动化任务或者文件系统操作相关的应用中。理解和掌握...

    glob-fs:用于node.js的文件。 快速而强大的替代node-glob。 该库是实验性的,在Windows上不起作用!

    pattern {String} :用于匹配的Glob模式。 (计划多个模式支持) options {Object} : glob-fs或中间件的选项。 例子: // sync var files = glob . readdirSync ( '*.js' , { } ) ; // async glob .

    rerun-script:通过 package.json,配置 glob 模式以在更改时监视和调用 npm 运行脚本

    使用 glob 模式通过package.json进行配置。 $ npm install rerun-script --save-dev 用法 Usage: rerun-script [options] Options: -a, --automatic run tests automatically -h, --help output usage ...

Global site tag (gtag.js) - Google Analytics