#!/bin/perl -w # # find big directories in a particular file system # ---- prompt user ---- print "directory> "; $partName="/home/users/"; chomp $partName; # ---- prompt user ---- print "size (in KB)> "; $dirSize="50000"; chomp $dirSize; # ---- find directories ---- @dirs=`find $partName -mount -type d | xargs du -sk`; # ---- print details on large directories ---- for $_ ( @dirs ) { chomp; my($size,$dirname) = split; if ( $size > $dirSize ) { if ( $size > 1000000 ) { # convert to GB $GB=$size/1000000; printf "%8.2f %s %s", $GB, "GB", "$dirname\n"; } elsif ( $size > 1000 ) { # convert to MB $MB=$size/1000; printf "%8.2f %s %s", $MB, "MB", "$dirname\n"; } else { printf "%8.2f %s %s", $size, "KB", "$dirname\n"; } } }