#!/usr/bin/perl -l use strict; use warnings; use File::Find; my $size = 0; find( sub { $size += -f $_ ? -s _ : 0 }, shift(@ARGV)); $size = sprintf( "%.02f", $size / 1024 / 1024); print "$size MB"; __END__ returned: 110.11 MB for /etc