explicação sobre du comando linux diskusage

3

Qual é a diferença entre esses dois:

du -h --max-depth=2 /usr/* | sort -nr | head -n 20

E:

du -h --max-depth=2 /usr/ | sort -nr | head -n 20

Gostaria de exibir a pasta 20 maior na pasta / usr.
Esta pasta 20 também inclui os tamanhos gerais de subpastas?

    
por ilansch 16.01.2013 / 10:51

2 respostas

7

Existem algumas mudanças importantes no comportamento dessas duas invocações. Vamos usar um exemplo, com a estrutura criada por:

mkdir mydir/{.a1,a2,a3}/{.b1,b2}/{.c1,c2} -p

Se você invocar du --max-depth=2 mydir , verá:

0       mydir/.a1/.b1
0       mydir/.a1/b2
0       mydir/.a1
0       mydir/a2/.b1
0       mydir/a2/b2
0       mydir/a2
0       mydir/a3/.b1
0       mydir/a3/b2
0       mydir/a3
0       mydir/

Mas se você for:

du --max-depth=2 mydir/*'

o caractere curinga será expandido e se tornará equivalente a:

du --max-depth=2 mydir/a2 mydir/a3

que lhe dará o seguinte resultado:

0       mydir/a2/.b1/.c1
0       mydir/a2/.b1/c2
0       mydir/a2/.b1
0       mydir/a2/b2/.c1
0       mydir/a2/b2/c2
0       mydir/a2/b2
0       mydir/a2
0       mydir/a3/.b1/.c1
0       mydir/a3/.b1/c2
0       mydir/a3/.b1
0       mydir/a3/b2/.c1
0       mydir/a3/b2/c2
0       mydir/a3/b2
0       mydir/a3

O importante a ser observado aqui é que ele omitirá o diretório .a1 . Para incluí-lo, você teria que executar algo semelhante a: du --max-depth=2 mydir/{.[!.]*,*} (mas eu acho que pode haver uma maneira mais fácil e mais genérica que eu não conheço). Também não calculará o tamanho total do diretório mydir .

E sim, os tamanhos informados por du incluem os tamanhos das subpastas.

    
por 16.01.2013 / 11:14
3

O primeiro conta objetos visíveis em /usr . Este último conta todos os objetos em /usr , incluindo /usr em si.

    
por 16.01.2013 / 10:57

Tags