Glob 模式
Glob 是什么
glob 是一种文件匹配模式,全称 global,它起源于 Unix 的 bash shell 中,比如在 linux 中常用的 mv *.txt tmp/ 中,*.txt 就使用到了这种模式。
Glob 有哪些用途
在计算机编程中,经常需要对文件或者文件夹进行操作,那么会经常涉及到一些文件或者文件夹的匹配操作,此时就是 Glob 模式大显身手的时候,比如上面的 mv 命令。
大家最熟悉的应用的地方可能给就是 git 中的 .gitignore 中的表达式了,它就是 Glob 模式的一个典型用法。
Glob 用法
以下是表达式的说明,注意 Glob 不匹配任何隐藏文件或文件夹。
| 模式 | 说明 |
|---|---|
* |
匹配除了斜杠(/)之外的所有字符。 Windows上是斜杠(/)和反斜杠(\) |
** |
匹配零个或多个目录及子目录。不包含 . 以及 .. 开头的。 |
? |
匹配任意单个字符。 |
[seq] |
匹配 seq 中的其中一个字符。 |
[!seq] |
匹配不在 seq 中的任意一个字符。 |
\ |
转义符。 |
! |
排除符。 |
?(pattern_list) |
匹配零个或一个在 pattern_list 中的字符串。 |
*(pattern_list) |
匹配零个或多个在 pattern_list 中的字符串。 |
+(pattern_list) |
匹配一个或多个在 pattern_list 中的字符串。 |
@(pattern_list) |
匹配至少一个在 pattern_list 中的字符串。 |
!(pattern_list) |
匹配不在 pattern_list 中的字符串. |
[...] |
POSIX style character classes inside sequences. |
举例
- 匹配 docs 目录下及子目录所有 markdown 文件:
docs/**/*.md - 匹配 大小写的 bin 文件夹:
[Bb]in
各个语言提供的库
- Javascript: https://github.com/isaacs/node-glob
- C#: https://github.com/kthompson/glob
- GO: https://github.com/gobwas/glob
没列出来的,一般语言本身的库提供的有相关功能。
本文地址:http://www.cnblogs.com/savorboard/p/glob.html
作者博客:Savorboard
本文原创授权为:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
Glob 模式的更多相关文章
- Linux shell 通配符 / glob 模式
概念 glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的 /etc/glob (详见 man 文档).glob 是一种特殊的模式匹配,最常见的是通 ...
- glob模式
在学习gulp的过程中,gulp使用了被称作为glob的文件匹配模式. 接下来我们认识下什么是glob模式. 在计算机编程中,特别是类Unix环境,glob模式通过通配符来匹配文件名.例如:Unix命 ...
- centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课
centos shell基础知识 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 ...
- python glob标准库基础学习
#glob文件名模式匹配#作用:使用unix shell规则查找与一个模式匹配文件名"""尽管glob api很小,但这个模块很强大,只要程序需要查找文件系统中名字与某种 ...
- node中glob模块总结
参考文章: githup_glob node-glob学习 前言: 最近在学习webpack配置, 其中有一项glob配置入口文件, 来获取对应的文件名, 达到入口entry和output文 ...
- fnmatch:Unix式glob模式匹配,简单场景下可以代替正则
介绍 fnmatch模块用于根据glob模式(如Unix shell所使用的的模式)比较文件名 简单匹配 import fnmatch ''' fnmatch将一个文件名与一个模式进行比较,并返回一个 ...
- GitHub实战系列~3.提交github的时候过滤某些文件 2015-12-10
GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- SQLite源程序分析之sqlite3.c
/****************************************************************************** ** This file is an a ...
随机推荐
- 文本编辑器vim/vi——模式切换及输入模式
vim一共有三种模式:命令模式.输入模式.末行模式 要从命令模式切换到输入模式:a,i,o a——append 属于在后面追加内容:i——insert 属于插入,在前面插入内容:o——other 属于 ...
- 开源DDD设计模式框架YMNNetCoreFrameWork第6篇-.net Core Logging和Nlog结合
源码地址:https://github.com/topgunymn/YMNNetCoreFrameWork 遇到的坑:使用了Nlog以后,.NETcore自带的日志等级不起作用,只有nlog配置配置文 ...
- 九十六、SAP中ALV事件之九,显示功能按钮栏中显示ALV加强工具栏
一.排查了很久,终于找到问题所在.把问题解决了,代码如下: 二.运行效果如下 三.试一试,标准功能都可以用 完美
- 七十五、SAP中数据库的使用SQL
一.在SAP中可以使用两张数据库,一直是NativeSQL和OPEN SQL. Native SQL(本地SQL)特点: 1.每种关系型数据库都有其对应的 SQL,是数据库相关的. 2.不同的 SA ...
- windows7配置C++编译环境
将C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin添加到path后,依然不能编译: 新建INCLUDE:C:\Program Fil ...
- goroutine简介
一.goroutine简介 Golang中最迷人的一个优点就是从语言层面就支持并发 在Golang中的goroutine(协程)类似于其他语言的线程 并发和并行 并行(parallelism)指不同的 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-facetime-video
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- GS 原理及破解 《0day安全》
1.原理: 在main函数之前,会调用__security_init_cookie函数(win10,vs2017,release,x86): 进入__security_init_cookie函数内部: ...
- ES6 - 装饰器 - Decorater
注意,修饰器对类的行为的改变,是代码编译时发生的,而不是在运行时.这意味着,修饰器能在编译阶段运行代码.也就是说,修饰器本质就是编译时执行的函数. 修饰器是一个对类进行处理的函数.修饰器函 ...
- sql拆分列 时间拆分 日、月、年
我想 查看今日访问人数 需要分组查询 就得 时间拆分 这两天百度 方法有很多 substring ... 但是 我这一列 是时间类型: 可以直接用 DATEPART() 函数用于返回日期/时间的单独部 ...