我想使用Perl在一个目录中删除一个损坏的符号链接。
我认为只需要列出目录中的文件并测试是否是符号链接(-l),如果返回false就解除链接即可。
但是,当使用readir列出所有文件时,我的损坏符号链接没有被识别为文件。因为我的链接指向不存在的东西,我理解为什么会这样。 $myDir中的所有文件都是符号链接,无论是有效的还是损坏的。当我显示@files时,我只得到了有效符号链接的列表。
我认为只需要列出目录中的文件并测试是否是符号链接(-l),如果返回false就解除链接即可。
但是,当使用readir列出所有文件时,我的损坏符号链接没有被识别为文件。因为我的链接指向不存在的东西,我理解为什么会这样。 $myDir中的所有文件都是符号链接,无论是有效的还是损坏的。当我显示@files时,我只得到了有效符号链接的列表。
opendir DIR, $myDir;
my @files = grep(/$regexp/,readdir(DIR));
closedir DIR;
print "filenames : @files\n";