ln命令出现invalid option -- '/'错误的解决方法求助
解决ln命令报错“ln: invalid option -- '/'”的问题
嘿,这个错误我之前帮同事排查过好几次,大概率是ln命令把你输入的路径开头的/误当成了选项参数,才抛出这个报错。下面给你几个实用的排查和解决方向:
先核对命令格式是否正确
ln的核心格式就两种:创建软链接用ln -s 源路径 目标路径,创建硬链接直接用ln 源路径 目标路径。要是你不小心搞反了参数顺序,或者在选项后面的路径前加了多余的符号,就容易触发这个错误。比如如果写成ln 源文件 -s /目标路径,这时候-s后面的/目标路径会被当成选项处理,自然报错。用
--明确分隔选项和路径
要是你的源路径或目标路径本身是以-开头的(虽然这种情况不多见,但确实存在),或者ln就是误判了路径,你可以用--来告诉命令:后面的内容全是路径,不是选项。举个例子:ln -s -- /path/to/your/source /path/to/your/target这个
--是Unix/Linux命令的通用小技巧,用来终止选项解析,后面所有参数都会被视为普通的路径参数。检查路径是否包含特殊字符
如果路径里有空格、&、*这类特殊字符,又没加引号包裹的话,shell会把路径拆成多个参数,也可能导致ln把部分路径片段当成选项。这时候用单引号或双引号把路径括起来就行,比如:ln -s "/my path with spaces/source.txt" "/my path with spaces/link.txt"排查是否手滑输入了多余符号
有时候就是打字的时候手滑,多打了一个-或者把/和-搞混了,比如写成ln -s -/home/user/file target,这时候-/home/...就会被当成以-开头的错误选项,直接报错。仔细检查你的命令,删掉多余的符号就好。
内容的提问来源于stack exchange,提问作者Aleksei Kovaltsuk
相关产品推荐
相关产品推荐

