![命令行中文件名后面的@有什么作用](https://linux22.com/image/113033/%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E6%96%87%E4%BB%B6%E5%90%8D%E5%90%8E%E9%9D%A2%E7%9A%84%40%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8.png)
我注意到,当cat /home/@
我在获得一些服务器后完成选项卡时。看来这是我放在/etc/hosts 中的东西。但在这种情况下@的作用是什么。我是否缺少一些方便的管道功能?
我知道它也用于符号链接和 user:pass@server 但在这种情况下我不知道。任何人都可以阐明这一点吗?
答案1
在 bash 和可能的其他 shell 中,制表符补全涉及@
符号将:
尝试对点之前的文本执行补全。实际执行的完成是特定于应用程序的。 Bash 尝试完成将文本视为变量(如果文本以“$”开头)、用户名(如果文本以“~”开头)、主机名(如果文本以“@”开头),或依次命令(包括别名和函数)。如果这些都没有产生匹配,则尝试完成文件名。
bash 的代码位于 中/usr/share/bash-completion/bash_completion
,从_user_at_host
函数开始。