ln 遇到已经存在,不要报错

我希望在 ln 的时候,遇到已经存在的,忽略即可,不要报错

在执行 ln -s 命令创建符号链接时,如果目标文件已经存在,默认情况下会报错。你可以使用 -f(force)选项来强制替换已经存在的符号链接,但如果你希望 仅在符号链接不存在时才创建,并忽略已经存在的链接,则可以结合 || true 或在命令前检查是否已经存在该符号链接。

解决方法 1:检查符号链接是否已存在

通过 if 语句来判断符号链接是否存在,存在则忽略,不存在则创建:

if [ ! -L /usr/local/bin/tsg ]; then
  ln -s $(pwd)/dist/tsg /usr/local/bin/tsg
fi

解决方法 2:使用 || true 忽略错误

如果希望在命令报错时忽略该错误,可以使用 || true

ln -s $(pwd)/dist/tsg /usr/local/bin/tsg || true

这将忽略 ln 报错并继续执行其他命令。

解决方法 3:使用 ln -sf 强制替换

如果你不介意替换现有的符号链接,可以使用 -f 参数:

ln -sf $(pwd)/dist/tsg /usr/local/bin/tsg

此命令将强制替换现有的符号链接而不会报错。

选择适合你的方式来避免报错或根据需要替换符号链接。