#! /usr/bin/env perl open(DU, "du -sk *|") || die "Can't exec du: $!\n"; while () { ($size, $inode)=split; chop($size); $sum += $size; push @entries, { size => $size, inode => $inode }; } close(DU); @entries = sort { $b->{size} <=> $a->{size} } @entries; foreach $e (@entries[0 .. 10]) { printf("%30s | %5d | %2.2f%%\n",$e->{inode},$e->{size},$e->{size}/$sum*1000); }