Bash不会自动完成(Tab)文件

Fin*_*inn 9 linux bash terminal ubuntu bash-completion

bash中的自动完成(使用Tab)适用于文件夹,但不适用于文件.

  • 我正在运行Ubuntu 13.10
  • 我没有触及我的.bashrc文件

这是.bashrc文件的底部部分的外观,安装和更新了bash-completion部分:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

tha*_*guy 16

第三方"bash_completion"包(不要与bash或其原生完成混淆)有时很难预测.

  1. 某些命令专门设置为永远不会完成文件,例如 cd
  2. 有些命令会拒绝完成某些文件名,因为bash_completion没有意识到程序会处理它们,比如mplayer.
  3. 有些命令只是错误的,特别是当路径包含空格和其他字符时,例如scp.

如果您遇到bash_completion没有帮助的情况,您可以使用M-/(aka Alt + /)来改为使用bash的本机文件名.

如果命令经常给你带来麻烦,你可以complete -r thatcommand在你的命令结束时使用这个命令禁用bash_completion .bashrc.