我在 Linux 上遇到了问题traceroute
。该命令不起作用,但确实tracert
可以正常工作。这两个命令实际上都在运行该traceroute
命令,因为tracert
它只是一个符号链接traceroute
。
为什么它没有按预期工作?
以下是显示该行为的屏幕截图:
答案1
该程序正在查看argv[0]
(其名称)并根据您使用的命令(tracert
或)调用不同的行为。traceroute
如果执行该程序tracert
那么argv[0]
就是tracert
。
因此,两个命令,相同的可执行文件,通过代码的不同路径调用不同的行为。
在 Ubuntu Linux 上:
traceroute6 is equivalent to traceroute -6
tracert is equivalent to traceroute -I
tcptraceroute is equivalent to traceroute -T
答案2
将 traceroute 添加到您的系统 PATH:
$echo $PATH
xxxxxxxx
$ which traceroute
/bin/traceroute
xxxxxxxx 是否包含 traceroute?那么只需创建一个软链接即可。