通配符用法
在本篇文章中,本文将说明通配符用法。
(1)概述
通配符是在Linux命令中用于匹配文件名的特殊字符。它们可以帮助我们快速定位和操作文件。本文将介绍一些常用的通配符及其示例用法。
通配符是一种用于模式匹配的特殊字符。在计算机领域中,通配符通常用于文件名匹配和搜索操作中。它们允许你根据特定的模式来匹配文件名或字符串,从而进行更灵活和方便的匹配操作。
(2)常见通配符及作用:
符号 | 作用 |
---|---|
* | 匹配任意长度的任意字符序列。例如,file* 可以匹配file1 、file2 、file123 等。 |
? | 匹配单个字符。例如,file?.txt 可以匹配file1.txt 、file2.txt 等。 |
[ ] | 匹配指定范围内的字符。可以使用单个字符或字符范围。例如,[abc] 可以匹配a 、b 或c ,[0-9] 可以匹配任意数字。 |
[^ ] | 匹配不在指定范围内的字符。例如,[^abc] 可以匹配除了a 、b 和c 之外的任何字符。 |
{ } | 创建多个模式的组合。可以使用逗号分隔多个模式。例如,{file1,file2}.txt 可以匹配file1.txt 和file2.txt 。 |
~ | 匹配用户的主目录。例如,~/Documents 表示当前用户的Documents 目录。 |
. | 匹配任意单个字符。在文件名中使用. 需要进行转义,即使用\. 。例如,file\.txt 可以匹配file.txt 。 |
+ | 匹配前一个字符的一个或多个实例。例如,file+ 可以匹配file 、filee 、fileee 等。 |
`` | 反引号,用于引用命令结果 |
() | 创建子模式。可以使用括号将模式组合在一起。 |
这些通配符符号在Linux系统中经常用于文件名匹配和模式匹配。
(3)常用示例
1. 使用通配符匹配文件名
通配符在命令行中也可以用于匹配文件名。例如,要列出当前目录下所有以.txt
结尾的文件,可以执行以下命令:
ls *.txt
输出:
1.txt test1.txt test2.txt test.txt
这将输出所有以.txt
结尾的文件名。
2. 使用反引号执行命令替换
反引号可以用于执行命令替换。例如,要创建以当前日期命名的.txt
文件,可以执行以下命令:
touch `date +%F`.txtls *.txt
输出:
1.txt 2023-12-12.txt test1.txt test2.txt test.txt
这将创建一个以当前日期命名的.txt
文件。
3. 结合find命令搜索指定深度的文件夹
要搜索指定深度的文件夹,可以使用find
命令的-maxdepth
参数。例如,要在/tmp/tmp1/tmp2
目录下搜索深度为3的文件夹内所有文件,可以执行以下命令:
mkdir -p /tmp/tmp1/tmp2touch /tmp/tmp1/tmp2/666.txtfind /tmp/tmp1/tmp2 -maxdepth 3 -type f -name "*"
输出:
/tmp/tmp1/tmp2/666.txt
4. 结合find命令匹配特定模式的文件
find
命令还可以使用正则表达式匹配特定模式的文件。例如,要找出/tmp
目录下以任意一位数字开头且以非数字结尾的文件,可以执行以下命令:
find /tmp -type f -regex '.*/[0-9][^0-9]*'
输出:
/tmp/1.txt
/tmp/tmpp1/2
/tmp/tmpp1/3
/tmp/tmpp1/1.sh
/tmp/tmpp1/2.sh
/tmp/tmpp1/3.sh
/tmp/tmpp1/4.sh
[0-9]
匹配任意一位数字,[^0-9]
匹配任意非数字字符,*
表示行尾。
这个命令会找到以数字开头且以非数字结尾的文件。
5. 结合find命令复制特定模式的文件
要复制以非字母开头的文件到指定目录下,可以使用find
命令结合-exec
参数。例如,要将/usr/local
目录下以非字母开头的文件复制到/tmp/tmpp1/
目录下,可以执行以下命令:
find /usr/local -type f ! -name '[a-zA-Z]*' -exec cp {} /tmp/tmpp1/ \;
这个命令使用find
命令查找/usr/local
目录下不以字母开头的文件,并使用-exec
参数将它们逐个复制到/tmp/tmpp1/
目录下。
(4)总结
本文介绍了一些常用的通配符及其示例用法。掌握这些通配符可以帮助我们更高效地在Linux系统中定位和操作文件。希望这些示例对你有所帮助!
相关文章:
通配符用法
在本篇文章中,本文将说明通配符用法。 (1)概述 通配符是在Linux命令中用于匹配文件名的特殊字符。它们可以帮助我们快速定位和操作文件。本文将介绍一些常用的通配符及其示例用法。 通配符是一种用于模式匹配的特殊字符。在计算机领域中&am…...

如何从eureka-server上进行服务发现,负载均衡远程调用服务
在spring cloud的maven的pom文件中添加eureka-client的依赖坐标 <!--eureka-client依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependen…...

Flutter实现Android拖动到垃圾桶删除效果-Draggable和DragTarget的详细讲解
文章目录 Draggable介绍构造函数参数说明使用示例 DragTarget 介绍构造函数参数说明使用示例 DragTarget 如何接收Draggable传递过来的数据? Draggable介绍 Draggable是Flutter框架中的一个小部件,用于支持用户通过手势拖动一个子部件。它是基于手势的一…...
Nacos和Eureka冲突问题原因分析
目录 一、问题现象二、解决办法三、原因分析 一、问题现象 Description:Field autoServiceRegistration in org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration required a single bean, but 2 were found:- eurekaAutoServiceRegis…...

『C++成长记』拷贝构造函数
🔥博客主页:小王又困了 📚系列专栏:C 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、拷贝构造函数 📒1.1拷贝构造函数的概念 📒1.2拷贝构造…...

B 站基于 StarRocks 构建大数据元仓
作者:bilibili 大数据高级开发工程师 杨洋 B站大数据元仓是一款用来观测大数据引擎运行情况、推动大作业治理的系统诊断产品。经过调研和性能测试,大数据元仓最终以 StarRocks 为技术底座,从实际的应用效果来看,大部分查询都能在几…...

最常用的4种光纤接口结构
光纤接口,全名是光纤活动连接器。光纤连接器就是用于光纤与光纤之间进行可拆卸连接的器件,它是把光纤的两个端面精密的对接起来,使光能量前后达到最大程度的耦合。 光纤连接器属于高精密的器件,最常见结构形式可分包括:…...

Axure网页端高交互组件库, 下拉菜单文件上传穿梭框日期城市选择器
作品说明 组件数量:共 11 套 兼容软件:Axure RP 9/10,不支持低版本 应用领域:web端原型设计、桌面端原型设计 作品特色 本作品为「web端组件库」,高保真高交互 (带仿真功能效果);运用了动态面板、中继…...
基于Java新人入职管理系统
基于Java新人入职管理系统 功能需求 1、个人信息管理:系统需要提供个人信息管理功能,包括新人的基本信息、联系方式、教育背景、工作经历等。 2、入职流程管理:系统需要提供入职流程管理功能,包括入职手续的办理、合同签订、入…...

Python实战 | 如何抓取腾讯视频
嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 爬虫: 作用: 批量采集数据 / 模拟用户行为 原理: 模拟成 客户端 向 服务器 发送网络请求 环境介绍: python 3.8 解释器 pycharm 编辑器 第三方模块: reques…...
总结MySQL 的一些知识点:MySQL 导出数据
MySQL 导出数据 MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上。 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中我们将数据表 kxdang_tbl 数据导出到 /tmp/kxdang.txt 文件中: mysql> SELECT * FROM kxdang_tbl -> INTO OUTFILE /…...

C语言-字符串操作函数-附加使用方式
文章目录 前言字符串复制-strcpy字符串复制(按照位数)-strncpy字符串比较-strcmp字符串比较(按照位数)-strncmp不区分大小写的字符串比较-strcasecmp不区分大小写的比较(前n位)-strncasecmp字符串按照格式写入-sprintf字符串按照格式和个数写入-snprintf…...

06-React组件 Redux React-Redux
React组件化(以Ant-Design为例) 组件化编程,只需要去安装好对应的组件,然后通过各式各样的组件引入,实现快速开发 我们这里学习的是 Ant-design (应该是这样),它有很多的组件供我们…...
Windows安装卸载MySQL
【官方】MySQL参考手册:介绍MySQL Server、SQL、InnoDB存储引擎、复制等。 Windows 卸载 MySQL 删除程序 【win x】 > p ,在安装的程序中卸载MySQL相关删除安装目录和数据文件夹 D:\ProgramFiles\MySQL C:\ProgramData\MySQL删除服务 【win r】 &…...
element-ui 重置resetFields()不生效
element-ui 重置resetFields()不生效 初始化数据 data() {return {dialogVisible: false,form: {name: ,age: ,sex: ,birth: ,addr: }}}弹窗关闭重置数据 handleClose() {// 弹窗关闭的时候清除数据this.$refs.form.resetFields()this.dialogVisible false }以上操作this.$…...

JVM学习笔记-如何在IDEA打印JVM的GC日志信息
若要在Idea上打印JVM相应GC日志,其实只需在Run/Debug Configurations上进行设置即可。 拿《深入Java虚拟机》书中的3-7代码例子来演示,如 1 public class JvmTest {2 private static final int _1MB1024*1024;3 public static void main(String…...

16ASM 汇编基础与Debug使用
目录 硬件运行机制 微机系统硬件组成 计算机系统组成 8086CPU组织结构 DoxBox安装 Debug使用 R命令 D命令 E命令 U命令 T命令 A命令 标志寄存器 常用机器指令 硬件运行机制 下面是一个电子器件二极管,正向加电则通,反向加电则不通 利用二…...
基于Java车辆管理系统(如高校、办公园区)
基于Java车辆管理系统(如高校、办公园区) 功能需求 1、车辆进出管理:对进出校园和园区的车辆进行登记、授权和监管,确保车辆进出安全,特别是对于贵重车辆或特殊车辆,可以进行特别监控。 2、停车管理&…...

Dubbo v Spring Cloud:两大技术栈如何选型?
提到微服务开源框架,不可不说的是 Dubbo 和 Spring Cloud,这两大框架应该是大家最熟悉的微服务解决方案,也是面试中的热点。本文就梳理下 Dubbo 和 Spring Cloud 的应用特性,以及两个组件的功能对比。 Dubbo 应用 Dubbo 是阿里开…...

ubuntu上搭建bazel编译环境,构建Android APP
背景是github上下载的工程,说明仅支持bazel编译,折腾了一天Android studio,失败。 不得不尝试单价bazel编译环境,并不复杂,过程记录如下 说明:ubuntu环境是20.04,pve虚拟机安装 1.安装jdk sudo…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...