Chinaunix首页 | 论坛 | 博客
  • 博客访问: 485116
  • 博文数量: 279
  • 博客积分: 4467
  • 博客等级: 上校
  • 技术积分: 2830
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-03 14:43
文章分类

全部博文(279)

文章存档

2013年(1)

2012年(39)

2011年(35)

2009年(29)

2008年(131)

2007年(44)

分类:

2008-06-10 15:36:35

unzip.pl   input.tar.gz


input.tar.gz 文件里还有a.tar.gz;b.tar.gz文件; a.tar.gz文件里还有.tar, .jar文件。

这个程序的目的就是要把input.tar.gz文件里的所有可以解压的tar/jar/tar. ... [/quote]

use warnings;

############# Main Begin ################

if ($ARGV[0]) {
    &deep_unzip($ARGV[0]);
}
else {
    print "Usage: DeepUnzip.pl 'file1' 'file2' 'filen'\n";
}

############# Main End ##################


### unzip the target recursively
sub deep_unzip {
    my $target = shift;
   
    if ($target =~ /\.jar$/i) {
        print "jar -xf $target\n";
        system("jar -xf $target");
        $target =~ s/\.jar$//i;
    }
    elsif ($target =~ /\.tar$/i) {
        print "tar -xf $target\n";
        system("tar -xf $target");
        $target =~ s/\.tar$//i;
    }
    elsif ($target =~ /\.tar\.gz$/i) {
        print "gunzip -f $target\n";
        system("gunzip -f $target");
        $target =~ s/\.gz$//i;
        
        print "tar -xf $target\n";
        system("tar -xf $target");
        $target =~ s/\.tar$//i;
    }
   
    # unzip the new files recursively
    if (-d $target) {
        print "cd $target\n";
        chdir($target);
        my @new_files = glob "*";
        foreach (@new_files) {
            &deep_unzip($_);
        }
        print "cd ..\n";
        chdir('..');
    }
}
阅读(929) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~