Reproduza a opção “--max-depth =” para o comando disk-usage no AIX

3

Quando eu trabalho em ambiente de distribuição Linux / GNU eu geralmente uso esse comando maravilhoso

du --max-depth=1 /

Isso lhe dá o tamanho de cada pasta no diretório root . Hoje trabalho com o AIX e o sysadmin não quer ouvir falar sobre o GNU.
Existe alguma ferramenta ou linha de comando que permita reproduzir o comando --max-depth no AIX para o comando du ?

    
por Kiwy 28.02.2014 / 10:21

1 resposta

9

Basta remover as linhas dos subdiretórios (que pressupõem que os nomes de diretório não possuam caracteres de nova linha):

du | grep -v '/.*/'

ou:

du | awk -F/ 'NF <= 2'

Note que não será significativamente mais lento que o du --max-depth=1 do GNU, já que a parte custosa é lstat ing de todos os arquivos que precisam ser feitos para ambos.

Se você não pode garantir que os nomes de diretório não tenham caracteres de nova linha:

du .//. | awk '
  function process() {
    if (p != "" && split(p, a, "/") <= 4) {
      sub("//.", "", p);
      print p
    }
  }
  /\/\// {process(); p=$0; next}
  {p = p "\n" $0}
  END {process()}'
    
por 28.02.2014 / 10:43