Simple non-recursive way.
(I don't have Windows to test on, but this runs on ArchLinux.)
#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11150213 use warnings; use IO::Compress::Zip qw{zip $ZipError}; my @paths = '.'; # FIXME set to the base of your folder while( defined( my $path = pop @paths) ) { if( -d $path ) { opendir my $dh, $path or die "dir $path errro $1 on opendir"; push @paths, map "$path/$_", grep !/^\.\.?\z/, readdir $dh; } elsif( -f $path and $path =~ /00\z/ ) { print "found to zip: $path\n"; # (zip $path, "$path.zip") ? unlink $path : die "$ZipError on $path" +; # untested } }
Of course, uncomment the 'zip' line to have it actually do the zipping, and set @paths to the appropriate directory (or directories).
In reply to Re: Compressing files on an entire disk
by tybalt89
in thread Compressing files on an entire disk
by justin423
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |