use strict; my $fp = $ARGV[0] or die "use: cleandisk path\nA path is mandatory"; my $nf = 0; print "Filling with random data your entire hard disk.\n"; my $randomDataCacheLength = 50000; my $randomDataCache = load_rdc( $randomDataCacheLength ); my @filesWritten; my $noError = 1; while ( $noError ) { eval { my $filename = $fp . '/xx___FILLER____' . $nf++ . '.txt'; push @filesWritten, $filename; open F, ">$filename" or die "Disk Full"; print F substr( $randomDataCache, rand( $randomDataCacheLength ) ); close F; if ( $nf % 50 == 0 ) { print "Writing ${nf}th entry\n"; } }; if ($@) { print "$@\n"; $noError = 0; }; } print "Now removing random data...\n"; map {unlink $_; } @filesWritten; sub load_rdc { my $c_max = shift; my $s = ""; for ( my $c = 0; $c < $c_max; $c++ ) { $s .= chr rand( 20 ) + 65; } return $s; }