如何使用perl脚本从多个子文件夹中解压缩多个文件?

时间:2014-09-03 16:30:42

标签: perl

我在父目录中有多个子文件夹,每个子文件夹包含10个以上的zip文件。 父目录:/ parentdir 子目录:/ parentdir / 2011-01,2011-02 ......直到2014-06,依此类推..每个月。

每个子目录:file1.zip,file2.zip,... file10.zip

我想使用perl脚本解压缩相同子文件夹中的所有文件,并在解压缩后删除.zip文件,或者只将file1.zip解压缩到file1

你能帮助在unix机器上使用PERL脚本来实现这个目的吗?

有可能使用

use strict;
use warnings;
use IO::Uncompress::Unzip qw(unzip $UnzipError);

my $zipfile = $ARGV[0];
my $u = new IO::Uncompress::Unzip $zipfile
or die "Cannot open $zipfile: $UnzipError";

die "Zipfile has no members"
 if ! defined $u->getHeaderInfo;
}

但它提供了解压缩/解压缩一个文件的选项

Miller的答案更新

使用http://pkgs.org/centos-6/epel-i386/perl-Path-Class-0.25-1.el6.noarch.rpm.html并为每个侦听安装rpm for Path :: Class,现在仍无法解压缩子文件夹中的文件:IO :: Uncompress :: Unzip:输入参数不是文件名,unzipper.pl第13行的文件句柄,数组引用或标量引用

我有一个父文件夹api_parent_folder      在子文件夹中 - 2014-01,2014-02 ......

在上面的脚本中我已将/ parentdir更改为/ mnt / api_parent_folder

我按照以下方式行事。

现在仍无法解压缩子文件夹中的文件:IO :: Uncompress :: Unzip:输入参数不是文件名,文件句柄,数组引用或标量引用at unzipper.pl第13行

1 个答案:

答案 0 :(得分:0)

使用Path::Class遍历目录结构: