função para mostar os maiores arquivos do seu sistema

Coloque no seu ~/bashrc


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

2 comentários:

  1. Não achei que esse comando funciona como o esperado, ele acaba retornando apenas os diretórios.

    Tente o seguinte comando:
    find / -type f -print | xargs -d "\n" ls -sk | sort -nr | head

    ou
    find / -type f -print 2> /dev/null | xargs -d "\n" ls -sk 2> /dev/null | sort -nr | head

    ResponderExcluir
  2. se alterar-mos a saida para ser um pouco mais longa os arquivos começam a aparecer, é que o comando, dependendo de como é montado pode realmente listar só pastas, se por exemplo listar-mos somente os 10 maiores, certamente as pastas aparecerão primeiro, é só uma questão de personalizar o comando.

    ResponderExcluir

Insira seu comentário - O mesmo será submetido à aprovação!

linux-cookbook

Grupos do Google
Participe do grupo linux-cookbook
E-mail:
Visitar este grupo