![Bash 完成 cd 别名](https://linux22.com/image/1446680/Bash%20%E5%AE%8C%E6%88%90%20cd%20%E5%88%AB%E5%90%8D.png)
我使用以下函数在更改当前工作目录后列出目录内容:
function c() {
cd $@;
ls;
}
我如何为‘c’函数启用 bash 目录名称完成功能,以便它也适用于 $CDPATH 中的目录?
答案1
您可以将命令的完成函数设置cd
为函数c
。首先确定 cd 命令指定了哪个完成函数。在我的例子中:
$ complete | grep " cd$"
complete -o nospace -F _cd cd
这是函数_cd
,在我的例子中,_cd 尊重$CDPATH
变量。现在设置你的函数完成函数:
$ complete -o nospace -F _cd c
现在,输入时c <tab><tab>
,会给出与输入时相同的建议cd <tab><tab>
为了使其永久生效,请将命令写入您的~/.bashrc
。