在File :: Find :: find中移动和删除文件是否安全?

时间:2013-01-31 08:48:11

标签: perl

File::Find::find ( sub {
    #
    unlink if int -M $File::Find::name > 100;
    File::Copy::move $File::Find::name, "/$File::Find::dir/backup" if $File::Find::name =~ /ERROR/;
    }, $dir );

在File :: Find :: find?

中移动和删除文件是否安全?

2 个答案:

答案 0 :(得分:4)

删除:是的。 File :: Find在为目录中的任何文件调用wanted之前读取整个目录。

移动:不,因为您要将文件移动到可能访问的目录中。但是,如果您添加了以下所需的片段,那将是安全的。

if ($_ eq 'backup') {
   $File::Find::prune = 1;
   return;
}

此外,您之后确实应该拥有以下内容:

return if !-f $_;

答案 1 :(得分:0)

应该移动和删除文件。如果您正在移动并删除目录,因为您正在处理它们可能会有点令人困惑。文件和目录列表将在sub的开头进行,因此不会考虑在子运行期间创建的新文件和目录

希望这有帮助