【发布时间】:2013-12-23 13:48:30
【问题描述】:
我正在尝试删除一组目录,不包括那些正在使用和symlinked 到其他地方的目录。
确定给定目录是否symlinked 的最有效方法是什么?
我尝试过os.stat(dir).mt_nlink,但即使对于我要删除的目录,它也会返回3。
编辑:
symlinked 我的意思是这个目录是一些符号链接的目标。
【问题讨论】:
我正在尝试删除一组目录,不包括那些正在使用和symlinked 到其他地方的目录。
确定给定目录是否symlinked 的最有效方法是什么?
我尝试过os.stat(dir).mt_nlink,但即使对于我要删除的目录,它也会返回3。
编辑:
symlinked 我的意思是这个目录是一些符号链接的目标。
【问题讨论】:
没有简单的方法可以确定其他人是否已链接到给定的“硬”目录。您只能检查给定目录是否是指向另一个目录的符号链接。
这意味着您需要遍历整个目录结构,查找符号链接,然后检查它们是否指向相关目录。
符号链接是一个特殊文件,它指向另一个文件/目录,位于目录结构的某个位置。符号链接也可以指向其他文件系统。创建符号链接不会更改目标文件/文件夹的 inode(与硬链接相反),因此您无法通过查看目标来判断,只能查看链接本身。
【讨论】:
【讨论】:
您还可以使用os.path.lexists 测试路径是否为断开链接(如果文件为lexists() and not exists(),则文件为断开链接)。
【讨论】:
lexists 来查看它是否损坏 - not exists(link) 就足够了。