有没有办法让 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)
安德鲁