3

使用Perl代码

use File::Find::Rule;

my @files = File::Find::Rule->file()
                            ->mtime('<=' . (time() - 3600))
                            ->in("/source/directory/path");

我在源目录中获得了至少一小时未修改的文件列表。

将此类文件移动到目标文件夹的最简单方法是什么?错误处理很重要。

我是否必须使用循环来一一移动这些文件,还是有一些不错的优雅和安全的方法来做到这一点?

4

1 回答 1

3

工作解决方案:

use File::Find::Rule;
use File::Copy;

my @files = File::Find::Rule
              ->file()
              ->mtime('<=' . (time() - 3600))
              ->exec( sub { 
                            my $r = move($_[2], "/destination/directory/path");
                            print STDERR "$_[2]\t$!\n" if !$r;
                            $r
                          }
                    )
              ->in("/source/directory/path");
于 2013-09-18T19:55:56.270 回答