zsh 使用通配符功能

部署运行你感兴趣的模型镜像

默认情况下 zsh 是不支持通配符 (*) 匹配的;

第一步,打开zsh配置文件

$ vi .zshrc

第二步,最后一行添加下面语句到文本中,保存、退出;

setopt nonomatch 

第三步,执行生效

$ source ~/.zshrc   

微信公众号:喵哥解说
公众号介绍:主要研究机器学习、计算机视觉、深度学习、ROS等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!同时还有1200G的Python视频和书籍资料等你领取!!!

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

<think>我们正在讨论通配符在编程和命令行中的使用方法。根据引用内容,通配符主要用于Shell命令中匹配文件名,而正则表达式则用于文本内容的搜索和替换。用户想了解通配符的具体使用方法,包括基础语法和进阶技巧。 从引用[1]中我们知道: - 通配符由Shell解析,用于匹配文件名。 - 基础通配符包括:`*`(匹配任意多个字符)、`?`(匹配单个字符)、`[]`(匹配指定范围内的字符)。 - 还提到了进阶通配符(extglob扩展),但没有详细说明。 引用[3]提到Windows命令行也支持通配符,但未详细说明具体用法。 因此,我们需要系统地介绍通配符使用方法,包括基础语法和进阶扩展(如bash中的extglob),并区分不同环境(如Linux/Unix shell和Windows命令行)下的使用。 回答结构: 1. 通配符的基本概念和用途 2. 基础通配符语法及示例 3. 进阶通配符(如bash的extglob)语法及示例 4. 在不同环境(Linux/Unix shell vs Windows命令行)下的使用差异 5. 注意事项(如与正则表达式的区别) 注意:由于用户问题涉及编程和命令行,我们主要关注命令行中的使用,但也可以简要提及编程语言中类似通配符的模式匹配(如Java中的命令行参数解析可能涉及通配符?但引用[2]中并没有提到通配符,而是命令行参数、包、接口等,所以这里不展开)。 根据引用[1]和[3],我们重点讲解Shell和Windows命令行的通配符。 由于引用内容有限,我们将结合常见知识进行补充。</think>### 通配符在编程和命令行中的使用方法 通配符(Wildcards)是命令行环境中用于匹配文件名或路径的特殊字符,由 Shell 解析执行。与正则表达式不同,通配符专注于**文件名匹配**,语法更简单。以下是核心用法: #### 一、基础通配符 1. `*`:匹配任意长度字符(包括空字符) - 示例:`ls *.txt` → 列出所有 `.txt` 文件 `cp doc* backup/` → 复制所有以 `doc` 开头的文件 2. `?`:匹配单个任意字符 - 示例:`ls file?.log` → 匹配 `file1.log`、`fileA.log`(但不匹配 `file10.log`) 3. `[]`:匹配指定范围内的字符 - 示例:`ls image[1-5].png` → 匹配 `image1.png` 到 `image5.png` `rm [A-C]*.tmp` → 删除以 A/B/C 开头的 `.tmp` 文件 #### 二、进阶通配符(需启用 `extglob`) 在 **bash** 中执行 `shopt -s extglob` 后启用: ```bash # 匹配 log 或 txt 文件 ls *.@(log|txt) # 排除 .tmp 文件 rm !(*.tmp) # 匹配所有非目录文件 echo *.* ``` #### 三、不同环境差异 | 环境 | 支持的通配符 | 示例 | |-------------|----------------------------------|--------------------------| | Linux/Unix | `*` `?` `[]` `{}`(需扩展) | `mv {old,new}_dir` | | Windows CMD | `*` `?`(功能受限) | `del temp_??.txt` | | PowerShell | `*` `?` `[]`(类似正则表达式) | `Get-ChildItem *[0-9]*` | #### 四、注意事项 1. **执行顺序**:Shell 先解析通配符再执行命令 ❌ 错误:`echo "*.txt" > list`(引号内不解析) ✅ 正确:`echo *.txt > list` 2. **隐藏文件**:`*` 不匹配以 `.` 开头的文件(需用 `.*`) 3. **转义特殊字符**:使用 `\` 或引号 ```bash touch "file*" # 创建含星号的文件 rm file\*.tmp # 删除特定文件 ``` 4. **与正则表达式区别**: | 特性 | 通配符 | 正则表达式 | |--------------|----------------|------------------| | 使用场景 | 文件名匹配 | 文本内容匹配 | | 匹配符号 | `*` 代替任意字符 | `.*` 代替任意字符| | 工具依赖 | Shell 内置 | grep/sed 等工具 |[^1] ### 常见应用场景 1. **批量操作** ```bash # 批量重命名 for file in *.jpg; do mv "$file" "${file%.jpg}.png"; done ``` 2. **条件删除** `find . -name "*.tmp" -delete` 3. **编程语言调用** Python 示例: ```python import glob txt_files = glob.glob('/data/*.txt') # 匹配所有txt文件 ``` > ⚠️ 注意:通配符在不同 Shell(bash/zsh/fish)和操作系统中的行为可能略有差异,建议先在小范围测试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少云清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值