软链接会将文件名作为第一个参数传递给目标?

软链接会将文件名作为第一个参数传递给目标?

https://github.com/adurbin/iotools

原来的用法是:

./iotools rdmsr x xxxxx

当我做时:

ln -sf iotools rdmsr

那么我可以这样做:

rdmsr x xxxxx

为什么??

因为在进行软链接时,它会将文件名作为第一个参数传递?

答案1

按照惯例,任何命令的参数列表都包括命令本身。当你跑步时

./iotools rdmsr x xxxxx

iotools使用参数./iotoolsrdmsrx和运行xxxxx。当你跑步时

rdmsr x xxxxx

iotools使用参数rdmsrx和运行xxxxx

大多数命令查看从第二个开始的参数(数字 1,因为编号从 0 开始)。但一些,包括iotools,如有必要,请考虑第一个参数。万一iotools,它首先检查它的第二个参数 ( argv[1]) 是否是一个命令,如果是,则使用它;否则,它检查其第一个参数 ( argv[0]) 是否是命令。

相关内容