#! /usr/bin/perl use strict; use File::Copy; my $tot = 0; my $SIZE_IND=7; my $smallest=2000000000; my $newLocation="/tmp"; my $some_dir = "/home/drew/temp"; opendir(DIR, $some_dir) || die "can't opendir" ; my @stats; my @dots; my $some_dir; my %dirFiles; @dots = readdir(DIR); my %fileSizes; for (my $file=0;$file <= $#dots;$file++) { if (($dots[$file] eq ".") || ($dots[$file] eq "..") || ($dots[$file] =~ /^[ ]+$/) || (-d $dots[$file])) { next; } $dirFiles{$dots[$file]} = 1;; @stats = stat $dots[$file]; $fileSizes{$dots[$file]} = $stats[$SIZE_IND]; $tot += $stats[$SIZE_IND]; if ($stats[$SIZE_IND]) { $smallest = ($smallest < $stats[$SIZE_IND])?$stats[$SIZE_IND]:$smallest; } } print "\n\r"; my $totPercent = 0.0; $tot.=".00"; print "\n\r"; $|=1; foreach my $file (keys(%dirFiles)) { copy($file, "/tmp/$file"); $fileSizes{$file}.=".1"; my $curPercent = ($fileSizes{$file}/$tot) * 100.0; $totPercent += $curPercent; printf STDERR "%2.2f%% complete\r", $totPercent; sleep 1; }