biggest (){
du -k * | sort -nr | cut -f2 | head -20 | xargs -d "\n" du -sh
}
Obs: Agradecimentos aos membros da lista de shell script do yahoo:
http://br.groups.yahoo.com/group/shell-script/message/29808
Agora vamos explicar o comando procê nun ficar tonto:
du -k ...... exibe em múltiplos de 1000
sort -nr ... ordena numericamente em ordem inversa
cut -f2 ... pega so os nomes
head ...... exibe os 10 maiores
xargs -d "\n" entrega a lista para o xargs indicando quebra de linha como separador
du -sh ..... faz o calculo do tamanho
Outra versão que ainda vou ter que analizar
du | sort -r -n | awk '{split("k m g",v); s=1; while($1>1024){$1/=1024; s++} print int($1)" "v[s]"\t"$2}'
Usando esta segunda versão o resultado deve ser filtrado com "head -valor"
biggest () {
du | sort -r -n | awk '{split("k m g",v); s=1; while($1>1024){$1/=1024; s++} print int($1)" "v[s]"\t"$2}'
}
Referência command-line-fu
Leia todos os posts sobre shell script:
http://vivaotux.blogspot.com/search/label/bash