我正在尝试删除一组目录,不包括那些正在使用的目录和symlink
编辑到其他目录。
确定给定目录是否为symlink
的最有效方法是什么?
我已经尝试了os.stat(dir).mt_nlink
,但即使对于我想删除的目录,也会返回3
。
修改:
按symlinked
我的意思是这个目录是某个符号链接的目标。
答案 0 :(得分:5)
没有简单的方法可以确定其他人是否已经建立了指向“硬”目录的链接。您只能检查给定目录是否是另一个目录的符号链接。
这意味着您需要遍历整个目录结构,查找符号链接,然后检查它们是否指向相关目录。
符号链接是一个特殊文件,指向目录结构中某处的另一个文件/目录。符号链接也可以指向其他文件系统。创建符号链接不会更改目标文件/文件夹的inode(而不是硬链接),因此您无法通过查看目标来判断,只能在链接本身。
答案 1 :(得分:2)
答案 2 :(得分:0)
您还可以使用os.path.lexists测试路径是否为断开的链接(如果lexists() and not exists()
文件是一个断开的链接)。