0
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 でファイルを移動および削除しても安全ですか?

4

2 に答える 2

4

削除: はい。wantedFile::Findは、ディレクトリ内のファイルを呼び出す前に、ディレクトリ全体を読み取ります。

移動: いいえ、アクセスする可能性のあるディレクトリにファイルを移動しているためです。ただし、次の必要なスニペットを追加すれば安全です。

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

また、後で次のものが必要です。

return if !-f $_;
于 2013-01-31T09:05:18.530 に答える
0

ファイルの移動と削除はうまくいくはずです。作業中にディレクトリを移動したり削除したりすると、多少混乱する可能性があります。ファイルとディレクトリのリストはサブの開始時に作成されるため、サブの実行中に作成した新しいファイルとディレクトリは考慮されません

お役に立てれば

于 2013-01-31T09:00:44.933 に答える