Verifique os tamanhos das pastas e informe o tamanho combinado para pastas com nomes idênticos no Linux

3

Eu tenho 2 pastas com subpastas (nomeadas após os usuários). A maioria dos nomes de subpastas existe nas duas pastas, mas não em todas. Agora quero criar uma lista de espaço usada por cada usuário.

Eu posso usar o seguinte comando para obter uma lista para cada pasta,

du -m --max-depth=1 | sort -nr

mas não conheço uma maneira fácil de mesclar duas dessas listas. Nem todos os usuários têm uma pasta nos dois locais, portanto, a classificação simples não funciona. Alguma idéia de como resumir os tamanhos das pastas para cada usuário?

    
por Mad Scientist 28.09.2010 / 15:19

1 resposta

3

Experimente:

join -j 2 <(cd dir1; du -m --max-depth=1 | sort -k2,2) <(cd dir2; du -m --max-depth=1 | sort -k2,2) | awk '{print $2 + $3, $1}' | sort -nr

Deveria ser assim:

11 ./bob
9 ./jan
8 ./cheryl
3 ./mike

Você pode alterar o comando AWK para tornar a saída um pouco mais atraente:

awk '{printf "%6s\t%s\n", $2 + $3, $1}'

que alinhará os números à direita e fará os nomes se alinharem em uma coluna.

    
por 28.09.2010 / 18:20