http://qs1969.pair.com?node_id=423091

stevenrh has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks,

I have a drive space script (not mine,actually, but we're using it---we don't deserve any credit for it :)) that is running to try to determine user directory usage.

When it runs, it dies on a user's subdir with an apostrophe. I wonder if there is an "if" loop i can put into the following script to either escape the character(s) or to just skip the folder/dir.

here is the script, the error follows:

#!/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"; } } }

after /home/users is /home/users/0-z..etc/0-z...etc for the first two characters in their username..

xargs: Missing quote: /home/users/b/l/blah/ stuff/webtemp/MP#s
the MP#s in the error actually has a folder named "MP3's"

ANY

help would be appreciated....