如何删除符号链接以及源目录

时间:2012-10-01 17:39:25

标签: python shell directory

我想删除符号链接以及源目录。

例如 -

ls -lrt
testsymlink -> /user/temp/testdir

我想删除testsymlink/user/temp/testdir。考虑一下,我知道唯一的符号链接名称。

任何使用python的实用程序都会很棒。

2 个答案:

答案 0 :(得分:5)

您可以使用os.path.realpath的结果来检测和删除符号链接目标。例如:

import os

# ./foo -> ./bar
filepath = "./foo"

if (os.path.realpath(filepath) != filepath):
    targetpath = os.path.realpath(filepath)

os.remove(filepath)
if (targetpath):
     os.remove(targetpath)

答案 1 :(得分:3)

编辑:我没有看到你想在python中找到一个解决方案:这只是在unix shell中有用。虽然你可以os.system()电话中包装下面的两个命令,但我强烈建议你按照Tim的回答。

要获取符号链接所指向的对象的路径,可以使用readlink

$ readlink testsymlink
/user/temp/testdir

要删除符号链接指向的对象,您可以将readlink的输出传递给rm

$ rm -r `readlink testsymlink`

反引号导致它们内部的命令被运行,然后用它自己的输出替换。最后,要删除符号链接本身,我们只需运行:

$ rm testsymlink