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....