![不区分大小写的 bash 自动完成](https://linux22.com/image/534397/%E4%B8%8D%E5%8C%BA%E5%88%86%E5%A4%A7%E5%B0%8F%E5%86%99%E7%9A%84%20bash%20%E8%87%AA%E5%8A%A8%E5%AE%8C%E6%88%90.png)
有没有办法让 bash 中的文件/目录自动完成不区分大小写?
例如我想写:
/opt/ibm/whatever/test
[TAB]
bash 将自动完成它:
/opt/IBM/Whatever/TESTfile
或者至少只有的最后test
一部分TESTfile
。
我知道文件系统区分大小写,我只是不想记住哪些部分是大写的,我希望自动完成功能能够为我修复路径。
如果我同时拥有TESTfile
和testfile
,就只向我显示它们,就像 bash 今天在自动完成冲突时所做的那样。
答案1
对这个讨论再补充一点;
shopt -s nocaseglob
这会影响通配符扩展,因此 ls w* 将显示 w1.txt W1.txt。但是,据我了解,制表符补全将忽略此设置。
您可以使用 inputrc 影响制表符补全;
echo 'set completion-ignore-case On' >> /etc/inputrc
或者(如果你的系统是这样设置的,则为 ~/.inputrc)
安德鲁