为什么如果使用制表符完成包含空格的路径,则 ~username/ 会更改为 /home/username ?

为什么如果使用制表符完成包含空格的路径,则 ~username/ 会更改为 /home/username ?

其中~jacksonc/temp/有两个文件,test.txtspace test.txt,均通过 Windows(使用 Samba)放置在那里。

使用 bash,如果我输入

cat ~jacksonc/temp/t[tab]

,它会自动完成

cat ~jacksonc/temp/test.txt

但是,如果我输入

cat ~jacksonc/temp/s[tab]

它会自动完成

cat /home/jacksonc/temp/space\ test.txt

我的问题不是关于反斜杠的,我知道它为什么在那里。但我很好奇为什么空格会导致 ~ 扩大?

答案1

我可以想象因为你的系统有 bash_completion 脚本http://bash-completion.alioth.debian.org/安装,这可以改变此类事物的行为。

通常可以通过 readline 选项关闭此扩展。在您的~/.inputrc文件中输入以下内容:

expand-tilde off

相关内容