如何防止 bash 将 ~ 扩展为选项卡上的主目录的全名?

如何防止 bash 将 ~ 扩展为选项卡上的主目录的全名?

在我的 bash 中我得到了如下行为:

当我输入:

cd ~/projects/p   <press tab>

bash 将该~部分扩展为我的主目录的全名:

cd /home/kender/projects/p

我记得前段时间没有发生这种情况。可以在 bash 中配置吗?

答案1

您现在很可能正在使用/etc/bash_completion– 检查它是否由您的配置文件或 bashrc 加载。

它包含一个函数_expand,用路径替换波浪号“以避免当以波浪号开头的 $cur 被输入到命令中并最终被引用而不是扩展时出现问题”(来自函数中的注释)。

如果你仍然想保留波浪线,你可以看看这个_filedir函数。靠近顶部有一行

_expand || return 0

删除它或使用前缀禁用它#。然而,这是一个丑陋的黑客行为,你可能会遇到上面提到的问题。

相关内容