El método de ThorstenS me parece que se necesita más trabajo, ya que se ejecuta find varias veces. Por un lado, solo haría 1 comando de búsqueda, y generaría el propietario y el tamaño de cada archivo, y luego haría algún tipo de magia en ese archivo.
La búsqueda sería algo así como que devuelve el nombre de usuario (o el número de identificación sin nombre de usuario) y el espacio utilizado en bytes, en un archivo delimitado por bytes nulos:
sudo bash -c 'find . -printf "%u\0%s\0" > username_usage'
Puede reemplazarlo \0
con algo que podría ser un poco más fácil de trabajar, como pestañas o líneas nuevas, pero eso sería menos seguro si tiene nombres de archivo originales.
Si quisieras ser aún más eficiente, podrías canalizar la salida al script que lo maneja mientras se ejecuta, pero eso sería un poco más de trabajo, y tendrías que hacerlo bien la primera vez.