http://www.perlmonks.org?node_id=746722


in reply to du -h, sorted

Honestly, though, I'd skip du, and just use cog's FileSys::DiskUsage module. It wouldn't be as short, but it'd be, um, a bit more readable ;-)

#! /usr/bin/perl use strict; use warnings; use Filesys::DiskUsage qw(du); use Sort::Key qw(ikeysort); my @files = @ARGV ? @ARGV : glob '*'; my %sizes = du( { 'make-hash' => 1, 'recursive' => 0, 'sector-size' => 1024, }, @files); @files = ikeysort { $sizes{$_} } keys %sizes; my %config = ( human => 1, 'truncate-readable' => 2 ); printf "%8s %s\n", Filesys::DiskUsage::_convert($sizes{$_}, %config), $_ for @files;
But, that's just me. (And look at all the other cool things you can do with Filesys::DiskUsage, or even the output format!