检查目录是否是符号链接?

Ado*_*obe 4 python python-2.7

os那里有一个os.path.islink(PATH)检查是否PATH是符号链接的函数.但是当PATH是某个目录的符号链接时失败.相反 - python认为它是directory(os.path.isdir(PATH)).那么如何检查目录是否链接?

编辑:

这是bash想法:

~/scl/bkbkshit/Teaching: file 2_-_Classical_Mechanics_\(seminars\)
2_-_Classical_Mechanics_(seminars): symbolic link to `/home/boris/wrk/tchn/2_-_Classical_Mechanics_(seminars)'
Run Code Online (Sandbox Code Playgroud)

这是什么python想法:

In [8]: os.path.islink("2_-_Classical_Mechanics_(seminars)/")
Out[8]: False
Run Code Online (Sandbox Code Playgroud)

int*_*jay 11

发生这种情况是因为您在文件名的末尾添加了斜杠.

os.path.islink("2_-_Classical_Mechanics_(seminars)/")
                                                  ^
Run Code Online (Sandbox Code Playgroud)

尾部斜杠使操作系统跟随链接,因此结果是目标目录,而不是链接.如果删除斜线,islink将返回True.

同样的事情也发生在Bash中:

g@ubuntu:~$ file aaa
aaa: symbolic link to `/etc'
g@ubuntu:~$ file aaa/
aaa/: directory
Run Code Online (Sandbox Code Playgroud)