在macOS系统的终端中,通配符“*”是否支持匹配多个连续字符?
美国、香港服务器
在macOS系统的终端中,通配符“*”是否支持匹配多个连续字符?
09-17 来源:
在 macOS 终端中,通配符 * 完全支持匹配多个连续字符,这是它最核心的功能之一。* 可以匹配任意数量的连续字符(包括 1 个、多个,甚至 0 个字符),无论这些字符是字母、数字、符号还是空格,都能被连续匹配。
具体示例说明
1. 匹配多个连续字符(最常见场景)
bash
# 匹配当前目录下所有以 "report" 开头、以 ".pdf" 结尾的文件
ls report*.pdf
会匹配:report.pdf(中间 0 个字符)、report_2024.pdf(中间多个字符:_2024)、report_final_draft.pdf(中间多个连续字符:_final_draft)。
2. 匹配包含特定片段的连续字符
bash
# 匹配所有名称中包含 "data" 的 .csv 文件
ls *data*.csv
会匹配:user_data.csv(data 前有字符)、data_2024.csv(data 后有字符)、sales_data_q1.csv(data 前后都有连续字符)。
3. 匹配含空格的多个连续字符
bash
# 匹配所有名称中包含 "project notes" 连续片段的文件
ls *"project notes"*.txt
会匹配:project notes.txt(直接包含连续空格和字符)、final project notes v2.txt(前后有其他连续字符)。
4. 结合路径匹配多个层级的连续目录 / 文件
bash
# 匹配 /Users 目录下所有用户的 "Documents" 文件夹中,以 "work" 开头的文件
ls /Users/*/Documents/work*
* 在路径中匹配了用户名(多个连续字符),work* 匹配了文件名中以 work 开头的多个连续字符(如 work_report.docx、workshop_notes.txt)。
关键特性总结
* 是 “贪婪匹配”:会尽可能匹配最长的连续字符序列(例如 a*b 会匹配 acccb 而非仅 ab)。
无长度限制:可以匹配任意长的连续字符(从 0 个到系统允许的最大文件名长度)。
兼容性:在 macOS 默认的 zsh 和常见的 bash 中行为一致,均支持匹配多个连续字符。
因此,* 是处理 “不确定长度的连续字符” 场景的最常用通配符,例如批量筛选名称格式相似但包含变量部分的文件。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快