A simple, brute force script for handling various kinds of compressed .tar files as well as .zip files, and passing them on to the proper decompressor.
UPDATE: Added $! to the output from croak, thanks to tilly reminding me it could contain useful information about the system() call, and also fixed a bug where an error would never cause the program to die, due to the value of $? being negative on failure.
#!/usr/bin/perl -w use strict; use Carp; (scalar @ARGV) || die "Usage: $0 file(s)\n"; foreach (@ARGV) { if (/\.tar\.gz$|\.tgz$/) { system "tar -zxvf $_"; error('tar') if ($? < 0); } elsif (/\.bz2$/) { system "tar -Ixvf $_"; error('tar') if ($? < 0); } elsif (/\.z$/i) { system "uncompress -dc | tar -xvf - "; error('uncompress') if +($? < 0); } elsif (/\.zip$/) { system "unzip $_"; error('unzip') if ($? < 0); } else { warn "Don't know what to do with $_, moving on\n"; } } sub error { my $call = shift; croak "Error calling $call - $!\n"; }
|
---|
Replies are listed 'Best First'. | |
---|---|
RE: Expand your world
by fundflow (Chaplain) on Aug 20, 2000 at 18:27 UTC | |
RE (tilly) 1: Expand your world
by tilly (Archbishop) on Aug 20, 2000 at 10:34 UTC | |
by jlp (Friar) on Aug 20, 2000 at 11:13 UTC | |
by tilly (Archbishop) on Aug 20, 2000 at 11:30 UTC |
Back to
Cool Uses for Perl