O método do ThorstenS parece ser mais trabalhoso do que o necessário para mim, porque ele é executado várias vezes. Por um lado, eu apenas faria 1 comando find, e exibia o proprietário e o tamanho de cada arquivo e, em seguida, faria algum tipo de mágica nesse arquivo.
A descoberta seria algo como o que retorna nome de usuário (ou número de identificação sem nome de usuário) e espaço usado em bytes, em um arquivo delimitado por bytes nulos:
sudo bash -c 'find . -printf "%u\0%s\0" > username_usage'
Você pode substituir \0
por algo que possa ser um pouco mais fácil de trabalhar, como guias ou novas linhas, mas que seria menos seguro se você tiver nomes de arquivos descolados.
Se você quisesse ser ainda mais eficiente, poderia canalizar a saída para um script que lida com ela à medida que é executado, mas isso seria um pouco mais trabalhoso e você precisaria acertar na primeira vez.