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 でファイルを移動および削除しても安全ですか?
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 でファイルを移動および削除しても安全ですか?
削除: はい。wanted
File::Findは、ディレクトリ内のファイルを呼び出す前に、ディレクトリ全体を読み取ります。
移動: いいえ、アクセスする可能性のあるディレクトリにファイルを移動しているためです。ただし、次の必要なスニペットを追加すれば安全です。
if ($_ eq 'backup') {
$File::Find::prune = 1;
return;
}
また、後で次のものが必要です。
return if !-f $_;
ファイルの移動と削除はうまくいくはずです。作業中にディレクトリを移動したり削除したりすると、多少混乱する可能性があります。ファイルとディレクトリのリストはサブの開始時に作成されるため、サブの実行中に作成した新しいファイルとディレクトリは考慮されません
お役に立てれば