O método de ThorstenS parece mais trabalho do que o necessário, porque ele é executado várias vezes. Para um, eu apenas faria um comando find, e daria a saída do dono e do tamanho de cada arquivo, e faria algum tipo de mágica nesse arquivo.
A localização seria algo como o que retorna o nome de usuário (ou número de identificação sem nome de usuário) e o espaço usado em bytes, em um arquivo delimitado por byte nulo:
sudo bash -c 'find . -printf "%usudo bash -c 'find . -printf "%u%pre%%s%pre%" > username_usage'
%s%pre%" > username_usage'
Você pode substituir o %code%
por algo que pode ser um pouco mais fácil de se trabalhar, como guias ou novas linhas, mas isso seria menos seguro se você tivesse nomes de arquivos originais.
Se você quisesse ser ainda mais eficiente, poderia canalizar a saída para o script que a manipula à medida que ela é executada, mas isso seria um pouco mais trabalhoso e você teria que acertar da primeira vez.