MacOS 10.13.x Terminal.app中apple*文件名匹配失败求助
解决MacOS 10.13.x终端中ls通配符匹配大小写文件名的问题
这个问题其实是因为MacOS 10.13默认使用的bash Shell,在文件名通配符(也就是globbing)上默认是区分大小写的。你输入的apple*只会匹配以小写字母a开头的文件,而你的文件是大写A开头的Apple Braille Outline 6 Dot.ttf,所以终端才会提示找不到文件。
给你几个实用的解决办法:
临时启用大小写不敏感匹配
在当前Terminal会话里执行这条命令:
shopt -s nocaseglob
执行完之后,再输入ls -l apple*就能匹配到所有以Apple或apple开头的文件了。如果之后想恢复默认的大小写敏感规则,执行:
shopt -u nocaseglob
直接写兼容大小写的通配符
如果你不想修改Shell的全局设置,可以直接在命令里指定大小写可选的字符:
ls -l [Aa]pple*
这个写法会匹配所有以大写A或小写a开头、后面跟着pple的文件,正好符合你的需求。
永久启用大小写不敏感匹配(可选)
要是你希望每次打开Terminal都自动忽略大小写匹配,可以编辑你的bash配置文件:
- 打开
~/.bash_profile文件(如果没有的话就新建一个):
nano ~/.bash_profile
- 在文件末尾添加一行:
shopt -s nocaseglob
- 按
Ctrl+O保存,Ctrl+X退出编辑器。 - 执行下面的命令让设置立即生效:
source ~/.bash_profile
之后每次打开Terminal,通配符匹配都会自动忽略大小写了。
内容的提问来源于stack exchange,提问作者Kent Davis
相关产品推荐
相关产品推荐

