我有一个名为test/first的文件夹,其中有几个文件夹和文件。基本上,我需要将文件名中包含“.log”的文件复制到test/first中的另一个文件夹中
#!/usr/bin/perl
use strict;
use warnings;
use File::Copy;
my $source_dir = "/test/first";
my $dest_dir = "/test/first/second";
my @files = glob("$source_dir/*");
foreach my $file (@files){
if ($file =~ /\.log/) {
#print ("$file");
move($file, "$dest_dir/$file");
}
}
1条答案
按热度按时间qv7cva1a1#
您需要使用File::Basename从路径中提取文件名。
您的脚本的问题是,它的解析目标目录如下-
/test/first/second/first/a.log
,其中/test/first/second/first/
不存在。试试下面的脚本,它会为你做的工作。