Como fazer “du” em todos os arquivos sob um diretório no linux?

4

Isso é o que eu tentei:

[demo@ ~]# ll /usr/local/apache2/logs/|xargs |du -hm -
du: cannot access '-': No such file or directory

Eu quero ver a quantidade de espaço que cada arquivo ocupa em m unit.

Como fazer isso da maneira correta?

    
por kernel 31.08.2011 / 13:08

4 respostas

5

Estou assumindo que ll é um alias para ls -l e, nesse caso, o que há de errado com

du -hm /usr/local/apache2/logs/*
    
por 31.08.2011 / 13:11
1
du -s /usr/local/apache2/logs/* | sort -rn | cut -f2 | xargs -d '\n' du -sh
    
por 31.08.2011 / 13:13
0

Ok, não exatamente o que você pediu, mas tree -fis ou tree -fih pode ajudá-lo um pouco e é uma solução pequena e compacta. :)

O primeiro comando gera a árvore de diretórios recursivos mostrando também o tamanho do arquivo em bytes, o segundo é o mesmo, mas tem saída "legível", mostrando o tamanho em kilobytes, megabytes, gigabytes ... o que for apropriado para esse arquivo.

    
por 31.08.2011 / 13:26
0

Você está tentando não descer em subdiretórios?

Que tal:

find . -type f -maxdepth 1 |xargs du -m 

Canalize para "sort-n" se desejado.

    
por 31.08.2011 / 13:39

Tags