ln: 无效选项 -- '/'

Ale*_*suk 3 command-line kernel symbolic-link

我有一个情况,ln即使在我阅读了ln帮助后也无法解决这个问题。

运行以下命令:

ln -sf  /lib/modules/$kernel_version/extra/mISDN_core.ko /lib/modules/$kernel_version/kernel/drivers/isdn/mISDN/mISDN_core.ko
Run Code Online (Sandbox Code Playgroud)

提供以下错误:

ln: invalid option -- '/'
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Yar*_*ron 6

我建议用$kernel_version实际值替换变量。

如下所述,使用带有反引号而不是单引号的以下命令也可以解决问题:

$ kernel_version=`uname -r`
Run Code Online (Sandbox Code Playgroud)

正如@steeldriver 所提到的,错误似乎是由于使用了单引号而不是命令周围的反引号uname -r

因此,以下示例命令:

$ kernel_version='uname -r'
$ ln -sf /tmp/test/$kernel_version/example /tmp/newname
ln: invalid option -- '/'
Try 'ln --help' for more information.
Run Code Online (Sandbox Code Playgroud)

将被翻译为:

$ ln -sf /tmp/test/uname -r/example /tmp/newname
ln: invalid option -- '/'
Try 'ln --help' for more information.
Run Code Online (Sandbox Code Playgroud)

正如@steeldriver 所写:大概错误消息是关于无效选项,'/'因为它-rln命令的有效选项

请注意,使用反引号不会出错:

$ kernel_version=`uname -r`
$ ln -sf /tmp/test/$kernel_version/example /tmp/newname
$ 
$ ls -l /tmp/newname 
lrwxrwxrwx 1 user user 35 Feb 21 16:02 /tmp/newname -> /tmp/test/4.4.0-112-generic/example
Run Code Online (Sandbox Code Playgroud)