在Python中,如何确定给定的目录是否是“symlink”的?

2024-09-28 21:30:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试删除一组目录,不包括那些在使用中并且symlink到其他地方的目录。在

确定给定目录是否被symlink添加到的最有效方法是什么?在

我尝试过os.stat(dir).mt_nlink,但它返回3,即使对于我想删除的目录也是如此。在

编辑

我所说的symlinked是指这个目录是某个符号链接的目标。在


Tags: 方法目录编辑目标os链接地方dir
3条回答

使用os.path.islink(path)。在

直接从文件中得知:

Return True if path refers to a directory entry that is a symbolic link. Always False if symbolic links are not supported.

使用os.path.islink。在

您还可以使用os.path.lexists(如果文件是lexists() and not exists(),则文件就是断开的链接)来测试路径是否是断开的链接。在

没有一种简单的方法可以确定是否有人建立了一个链接到一个给定的“硬”目录。只能检查给定目录是否是指向另一个目录的符号链接。在

这意味着您需要遍历整个目录结构,查找符号链接,然后检查它们是否指向有问题的目录。在

符号链接是指向另一个文件/目录的特殊文件,位于目录结构的某个位置。符号链接也可以指向其他文件系统。创建符号链接不会更改目标文件/文件夹的inode(与硬链接相反),因此您不能通过查看目标来判断,而只能查看链接本身。在

相关问题 更多 >