shell文件通配符:任意一个:?、任意数量:*、任意包含[]、[^]:任意不包含

news2024/11/24 7:03:00

文章目录

  • 一. 有哪些文件通配符
  • 二. 匹配任意
    • ?:匹配任意一个字符
    • *:匹配任意数量的字符串
  • 三. 匹配任意指定一个字符
    • 1. []:匹配任意包含
      • 匹配任意包含
      • 字符范围
    • 2. [!]与[^]:匹配任意不包含
  • 四. 注意事项
    • 1. 通配符组合
    • 2. 不能跨越目录层级进行通配
    • 3. 不能匹配文件名前面的点号

一. 有哪些文件通配符

如下图特殊符号具有能够代替(/通配)路径名或文件名的功能。

在这里插入图片描述

 
假设一个文件夹下有如下文件:

$ ls
README.md  file1.txt  file2.txt  file3.txt  file4.txt  string.c  string.h  string.txt

 

二. 匹配任意

?:匹配任意一个字符

string.后面有一个任意字符的文件名

$ ls string.?
string.c  string.h

如果连续指定三个?,则可以匹配到任意三个字符。

$ ls string.???
string.txt

 

*:匹配任意数量的字符串

如下,匹配任何以.txt结尾的文件名。

$ ls *.txt
file1.txt  file2.txt  file3.txt  file4.txt  string.txt

因为 * 也可以匹配到空字符串,所以使用string*.c这种写法也可以匹配到string.c文件。

$ ls string*.c
string.c

 
 

三. 匹配任意指定一个字符

1. []:匹配任意包含

匹配任意包含

在[]中列出多个字符,就可以匹配到含有其中任意一个字符的文件。
如下,可以匹配到string.c和string.h两个文件。

$ ls string.[ch]
string.c  string.h

 

字符范围

在[]中还能使用连字符指定字符的范围。

数字
比如,file[1-3]这种写法就可以匹配到file1、file2、file3中的任意字符。

$ ls file[1-3].txt
file1.txt  file2.txt  file3.txt

字符
通过连字符还可以指定字符范围指。
比如,使用[a-z]就可以匹配到所有的小写字母。

另外,如果想在[]中匹配连字符本身,可以像[-abc]或者[abc-]这样将连字符写到开头或者末尾。

 

2. [!]与[^]:匹配任意不包含

如果[]中的第1个字符是!或者^,则表示相反的意义,即匹配任意一个不在[]中的字符。

匹配file2.txt和file4.txt之外的文件名

$ ls file[!24].txt
file1.txt  file3.txt

如果想在[]中匹配 ! 或 ^ 符号本身,可以

  • 像[\^]这样在前面加上\
  • 或者像[abc\]或[abc!]这样,将^或!放到开头以外的位置。
[root@m3v bin]# ls hadoop.[\!]*
hadoop.!ad
[root@m3v bin]# ls hadoop.[!]*
ls: cannot access hadoop.[!]*: No such file or directory

四. 注意事项

1. 通配符组合

匹配所有以.c或.h结尾的文件

$ ls *.[ch]
string.c  string.h

2. 不能跨越目录层级进行通配

通配符不能匹配(分隔目录的)分隔号。

$ ls /usr/bin/*zip
/usr/bin/gpg-zip  /usr/bin/gunzip  /usr/bin/gzip

3. 不能匹配文件名前面的点号

$ touch .hidden
$ ls *hidden

ls: 无法访问*hidden: 没有那个文件或目录
因此,要想匹配到隐藏文件,需要显式地在文件名前面加上点号。


$ ls .*en
.hidden

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/392755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运筹系列67:大规模TSP问题的EAX遗传算法

1. 算法介绍 EAX是edge assembly crossover 算子的缩写。本算法有Y nagata教授公布,目前在VLSI最大的几个案例上获得了best的成绩。另外目前MonoLisa 100K问题的最优解也是由其公布,若能得到更优解,可以获得1000美元奖励。 算法步骤如下&…

【教学典型案例】用户称为设计者的正例

目录一:背景介绍二:设计理念三:设计过程按照设计理念设计的功能:1、用户可以根据自己的情况来选择显示哪些活动参与数据。2、用户可以对请假功能和点读功能进行开启和关闭操作(默认为全部开启)四&#xff1…

我一个女孩子居然做了十年硬件……

2011年,一个三本大学的电子信息专业的大三女学生跟2个通信专业的大二男生组成了一组代表学校参加2011年“瑞萨杯”全国大学生电子设计大赛,很意外的获得了湖北赛区省三等奖,虽然很意外,但还是挺高兴的,毕竟第一次为喜欢…

数据大爆炸时代,大容量硬盘为何不可或缺?

2月27日,中共中央、国务院正式印发《数字中国建设整体布局规划》(以下简称《规划》),明确提出要夯实数字中国建设基础:一是打通数字基础设施大动脉,优化各种级别数据中心的合理梯次布局;二是畅通…

Arduino双色LED实验记录

接线图片:双色LED实物和布线有区别:代码:int RED_LED 11; //设置红色为11 int GREEN_LED 10; //设置绿色为10 int val 0;//全局变量val void setup() {// put your setup code here, to run once:pinMode(RED_LED,OUTPUT);//引脚配置pinMo…

HCIP总结(一)

抽象语言---编码---二进制---电信号----处理电信号 (电脑工作流程) OSI参考模型 ----OSI/RM (核心思想:分层) 应用层----提供各种应用服务,将抽象语言转换成编码,提供人机交互的接口 表示层----将编码转换成二进制 …

10个值得收藏的ChatGPT辅助编程技巧

在我们开始之前,你必须先了解编程语言,然后才能相信 ChatGPT 抛给你的任何东西。 我必须明确这一点,因为许多误入歧途的绵羊被告知 ChatGPT 是新的圣杯,开发人员将被淘汰。 推荐:用 NSDT场景设计器 快速搭建3D场景。 使…

Redis学习(三):五大数据类型及常用操作

五大数据类型 Redis-Key set [key] [value] # 向数据库添加一个键值对 keys * # 查看当前数据库所有的键值 EXISTS [key] # 查看key是否存在在当前数据库中,存在返回1,不存在返回0 move [key] [index] # 将key移动到编号为index的数据库,…

Docker(八)---Docker安全相关设定

文章目录一、理解docker安全二、容器资源控制1.cpu资源限制2.cpu优先级3.内存资源限制4.磁盘io限制三、docker安全加固(隔离)四、容器特权一、理解docker安全 Docker容器的安全性,很大程度上依赖于Linux系统自身,评估Docker的安全…

扬帆优配|多只“迷你基”清盘未果业绩反领跑 盲目追捧有风险

2023年以来,在信创板块一枝独秀的行情下,多只重仓该板块的基金成绩乘着春风起舞,但作为较为小众的职业,现在来看能够真正享受到红利的基金多为迷你基金。有剖析指出,不少“迷你基”经过押注单一赛道或许投资小盘股等方…

【数据库】排名问题

返回第N高的一个解决思路返回N组中的第N高解决思路分数排名解决思路窗口函数数据库经常被用来解决排名问题。 返回第N高的一个 单表查询: 表: Employee------------------- | Column Name | Type | ------------------- | id | int | | salary | int | ----…

HTML DOM 改变 HTML 内容

HTML DOM 允许 JavaScript 改变 HTML 元素的内容。改变 HTML 输出流在 JavaScript 中&#xff0c;document.write() 可用于直接向 HTML 输出流写内容。实例<!DOCTYPE html><html><body><script>document.write(Date());</script></body>&l…

算法分析与设计之并查集详解

算法分析与设计之并查集1.前言2.并查集的基础2.1.关于动态连通性2.2.动态连通性的应用场景&#xff1a;2.3.对问题建模&#xff1a;2.4.建模思路&#xff1a;2.5.API2.7.Quick-Find算法&#xff1a;2.8.Quick-Union算法&#xff1a;3. 并查集的应用1.前言 本文主要介绍解决动态…

day02_设计测试用例的常见方法

软件测试用例 概念&#xff1a;一个为了特定的目的&#xff08;检验开发的代码实现是否满足用户的需求&#xff09;而设计的文档&#xff08;包含测试输入、执行条件、预期结果&#xff09;&#xff0c;文档的形式可以是xmind、excel等。 测试用例的核心要素 常见测试用例的…

Echarts-授人以鱼不如授人以渔

Echarts 授人以渔 授人以鱼不如授人以渔 这篇文章就告诉大家如何快速查阅官网的配置项手册 建议收藏&#xff0c;老司机请跳过 echarts是一个非常强大的图形库 但是对于很多刚入门的小伙伴而言echarts里面配置项海量的名词看到吐血 想要修改样式的时候不知道改哪里 下面就简…

【LeetCode】1653. 使字符串平衡的最少删除次数

1653. 使字符串平衡的最少删除次数 题目描述 给你一个字符串 s &#xff0c;它仅包含字符 ‘a’ 和 b’​​​​ 。 你可以删除 s 中任意数目的字符&#xff0c;使得 s 平衡 。当不存在下标对 (i,j) 满足 i < j &#xff0c;且 s[i] ‘b’ 的同时 s[j] ‘a’ &#xff0…

一次输入多个数据-batchsize大于1的简单的线性回归模型-标量

最简单的线性回归模型-标量 接上篇&#xff0c;由于batchsize为1&#xff0c;因此loss有很大的波动&#xff0c;这篇我们讨论batchsize大于1的情况。若batchsize数量为N&#xff0c;则ywxbywxbywxb的损失函数为&#xff1a; L∑i1N(wxi∗b−yi∗)2(wxTbeT−yT)(wxbe−y)\begin{…

html网页源码加密

html加密、网页加密、网页源码加密html网页源码能加密吗&#xff1f;能加密到何种程度&#xff1f; 某些时候&#xff0c;我们可能需要对html网页源码加密&#xff0c;使网页源码不那么容易被他人获得。出于这个目标&#xff0c;本文测试一种html加密方式。 提前透露&#xf…

Linux系统PWM应用编程

目录应用层如何操控PWM编写应用程序在开发板上测试本章我们将学习如何对开发板上的PWM 设备进行应用编程。 应用层如何操控PWM 与LED 设备一样&#xff0c;PWM 同样也是通过sysfs 方式进行操控&#xff0c;进入到/sys/class/pwm 目录下&#xff0c;如下所示&#xff1a; 这里…

Java多态性

用一句话概括就是&#xff1a;事物在运行过程中存在不同的状态。 多态的存在有三个前提: 1.要有继承关系 2.子类要重写父类的方法 3.父类引用指向子类对 但是其中又有很多细节需要注意。首先我们定义两个类&#xff0c;一个父类Animal&#xff0c;一个子类Cat。 父类Animal cl…