更新:您可以自定义自动完成的程序称为complete
.
你可以在这里找到一些很好的基本示例:更多关于使用 Bash Complete 命令
根据上面的链接使用函数和脚本名称,这是一个脚本,它附加/
到目录的符号链接......这只是一个粗略的示例,但它表明它可以完成(我没有尝试过内置cd
...
将函数_mycomplete_
与可执行文件关联myfoo
complete -F _mycomplete_ myfoo
进入的功能~/.bashrc
function _mycomplete_()
{
local cmd="${1##*/}"
local word=${COMP_WORDS[COMP_CWORD]}
local line=${COMP_LINE}
local xpat='!*.foo'
COMPREPLY=($(compgen -f -X "$xpat" -- "${word}"))
if ((${#COMPREPLY[@]}==1)) ;then
[[ -h $COMPREPLY ]] && COMPREPLY="$COMPREPLY/"
fi
}
原答案:
在命令行中,自动扩展为符号链接的主要指标显示在下表的最后一行,即。名称扩展但没有最终的/
。
on pressing TAB on pressing TAB (again)
what happens? meaning what happens?
=================== ======================= ====================================
Nothing is appended 1=> Multiple sub-dirs exist => A list of possibilities is presented
2=> No sub-directory exists => Nothing is appended (again)
Expands to end in / => A uniquely matching dir => ...as per first column (repeat)
Expands text only => Current name is a link => Expands to end in /
在您的示例中,如果您已经将命令行设置为全名,即。cd link
那么指标就不明显了。此外,您不会通过可能性列表知道它是一个符号链接。
为了能够到达cd
链接的目标,您可以使用cd -P link
, 或set -P; cd link