使用perl将当前目录中子目录下的相应文件拷贝到一个文件夹中

  对于分类的文件夹下又有子文件夹,如果要将所有子文件夹下的相应文件取出来,通过切换文件夹,不断Ctrl+C和Ctrl+V是一种让手疼的办法。而用perl就只要将下面的脚本放到当前文件夹下,在命令行中执行就可以替代手疼的方法。下面是代码,希望高手们有更好的方法和大家分享。
#############################
#!/usr/bin/perl -w
# 当前文件夹下所有的文件存入数组中
my @allFiles=glob("*");
# 执行循环,每个文件都要判断是否为目录
foreach my $subdir(@allFiles) {
   next unless (-d $subdir);
   # 如果是目录则打开目录句柄
   opendir(DIR, $subdir);
   # 从目录句柄中读取目录中的文件
   @fileName=readdir(DIR);
   # 关闭目录句柄
   closedir DIR;
   # 判断打开是否成功
   print "Dir is: $subdir:\n";
   
   # 进入每个目录中,loop所有的文件,然后对文件进行处理。
   # ".\\"是Windows系统中当前目录
   # 如果是Linux系统下,则当前目录用”./"
   chdir(".\\$subdir");
   foreach my $file(@fileName) {
        # 如果这些文件名能够匹配,则将这个文件cp到特定文件夹中
       if ($file =~ /$pattern/) {
            print $file, "\n";
            # copy相应文件到文件夹D:/test/中
            `cp $file D:\\test\\`
       } else {
           next;
       }
   }
   # 还原上一级目录
   chdir("..\\");
}

###############################


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值