删除到不存在的目录的符号链接的安全方法(对于python二进制文件)

时间:2011-02-27 11:45:21

标签: bash directory symlink

我不小心打字:

sudo ln -sf /usr/local/bin/python2.5/ /usr/bin/python 

而不是:

sudo ln -sf /usr/local/bin/python2.5 /usr/bin/python

现在bash告诉我,每当我运行python时,/ usr / bin / python都不是目录。

ls -l /usr/bin/python gives me expectedly /usr/bin/python --> /usr/local/bin/python2.5/

是否有任何安全方法可以删除指向目录(不存在)的符号链接,并将其替换为指向目标文件的链接?

如果您有任何想法,请提前<\ n> Arigato。

我被困了......

3 个答案:

答案 0 :(得分:5)

您只需删除与rm:

的链接即可
rm /usr/bin/python

答案 1 :(得分:0)

删除符号链接的方式与删除常规文件的方式相同,即使它是目录的符号链接。 (如果目标不存在,那么无论是目标还是文件都是一个没有实际意义的点。)

答案 2 :(得分:0)

这对我有用。虽然我最初是在一个blender教程之后创建了符号链接的 http://wiki.blender.org/index.php/Dev:2.5/Doc/Building_Blender/Linux/Troubleshooting#Setting_Python_Path_in_SCons

使用此命令:

sudo update-alternatives --install /usr/bin/python python /your/path/to/python3.2 1

(请参阅手册页了解更新 - 替代信息。终端&gt; man update-alternatives)

我很想知道我为管理不同版本的同名软件的更新替代系统搞砸了多少。例如,我认为scons在python2.7上运行,而blender在内部使用python3.2构建。事情还能正确解决吗?我们会看到......