Sorted and aggregated disk usage script
I've been asked for this script many times lately, so I'll publish it. It lists the disk usage of subdirectories in a given directory in descending order, right justified and suffixed with kilobytes or megabytes appropriately.
#!/bin/sh
display() {
local DIR=$1
du -sk $DIR/..?* $DIR/.[!.]* $DIR/* 2>/dev/null |
sort -n |
awk '
{
size = $1;
sum += size;
name = $2;
if ($1 < 1024){
printf("%9ik %s\n",size,name);
} else {
printf("%9.3fM %s\n",size/1024,name);
}
}
END{
print sum " kiB"
}
'
}
main() {
local DIR=$1
if [ "$DIR" = "" ]
then
display $HOME
quota
else
display $DIR
fi
}
main "$@"
Comments
Post a Comment