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
此命令将强制替换现有的符号链接而不会报错。
选择适合你的方式来避免报错或根据需要替换符号链接。