linux – 如何在Perl中检测到符号链接中断?
发布时间:2020-12-14 02:24:06 所属栏目:Linux 来源:网络整理
导读:我想使用Perl删除目录中损坏的符号链接. 在我看来,我只需要列出一个目录的文件,测试这是一个符号链接(-l),如果它返回false只是取消链接. 但似乎当使用readir列出所有文件时,我的破坏的符号链接不会被识别为文件.因为我的链接指向什么,我理解为什么. 那么:我
我想使用Perl删除目录中损坏的符号链接.
在我看来,我只需要列出一个目录的文件,测试这是一个符号链接(-l),如果它返回false只是取消链接. 但似乎当使用readir列出所有文件时,我的破坏的符号链接不会被识别为文件.因为我的链接指向什么,我理解为什么. 那么:我如何检测Perl中的符号链接是否被破坏? 谢谢, UPDATE $myDir中的所有文件都是符号链接,无论是有效还是损坏. opendir DIR,$myDir; my @files = grep(/$regexp/,readdir(DIR)); closedir DIR; print "filenames : @filesn"; 解决方法
有两个主要的相关系统调用,
stat() and lstat() .lstat()调用将告诉您它是一个符号链接(但在其他文件上,行为与stat()相同).这允许您确定该名称是符号链接. stat()系统调用遵循符号链接到其结尾,并告诉您链接末尾的文件(或目录).如果符号链接上的stat()调用失败,则符号链接中断,或者您正在尝试访问您没有权限的目录或文件.
Perl file test运算符包含-l,用于检测名称是否为符号链接.您可以明确使用Perl函数 您可能不需要使用 有趣的是,Perl及其POSIX模块都不支持 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |