Sistemas operacionaisTutoriais

Comando DU no Linux – Como ver o tamanho de arquivos e diretórios pelo terminal

Eu pretendo começar uma série de artigos aqui no blog falando sobre comandos úteis no terminal, além de algumas dicas de configurações mais avançadas. Esse tipo de artigo acaba servindo como documentação extra oficial e referência para futuros artigos e vídeos que nós produziremos. Hoje vamos falar sobre o ‘du’.

Imagine que você esteja mexendo no seu servidor e querendo saber quanto de espaço algum arquivo ou pasta está ocupando, o que você faria? Em modo gráfico você pode utilizar alguns softwares como o “Analisador de uso de Disco” que é excelente, olha só:

Mas caso você não tenha modo gráfico ou simplesmente queira fazer a verificação via terminal, existe um utilitário muito legal e poderoso chamado “du”, uma abreviação de “disk usage”, ou “uso de disco”, em Português.

Como utilizar o comando DU

O comando “du” geralmente está presente em todas as distros Linux por padrão, pois faz parte do Core Utils, para saber mais sobre a sua utilização você pode usar o comando:

du --help
du-help-linux
Existem mais opções do que as mostradas nessa imagem…

Através do comando de ajuda (–help) você consegue ver todos os parâmetros comuns que o “du” te oferece, mas vamos para alguns casos práticos e algumas dicas para você utilizar ele.

A funcionalidade do “du” é simples, você usa ele com o diretório ou arquivo que quer analisar, por exemplo:

du /home
Comando du exibindo blocos

Você verá que a saída desse comando será gigantesca, listando todos os diretório acessíveis com a permissão do seu usuário (seja o normal ou o root), o problema é que o comando “du” sem parâmetros mostra os valores de espaço em blocos de disco (f*ck yeah!), o que é um pouco complicado de entender, por isso existe um parâmetro “-h”, que está ali para “humanos”, ou seja, para você entender os espaços, medindo os valores em GB, MB, KB, etc. Por exemplo:

du -h /home 
comando DU mostrando unidades legíveis

Como você pode ver na imagem acima, podemos ver que os os diretórios agora tem valores mais simples de entender.

Ainda assim, esse comando mostra todos os diretórios de forma individual, o que dá uma saída muito grande realmente, se você quiser exibir apenas o tamanho total, use também o parâmetro “-s” de “summarize”. Ele pode ser escrito de diversas formas, veja:

du -h -s /home
du -hs /home
du -sh /home 

Todos eles lhe entregarão o mesmo resultado, mostrando os diretórios onde a leitura não foi possível por questões de permissão de usuário:

Comando Du mostrando apenas o resultado
Como é possível ver, acaba sendo uma saída muito menor

Particularmente eu gosto de escrever “du -hs diretório_ou_arquivo”, porque acabei associando com “head shot” do Counter Strike e acabei nunca mais esquecendo! 😁

Como eu já tinha comentado, você também pode usar o “du” para saber o tamanho de um arquivo, a forma de fazer a medição é muito simples, basta indicar o diretório com o nome do arquivo, ou então apontar o o arquivo, caso você já esteja no diretório. Por exemplo:

Eu tenho uma ISO do Fedora na minha pasta “Downloads” dentro da minha pasta “Home”, primeiro navego até ela usando o “cd”:

cd ~/Downloads/

Posso dar um “ls” para conferir o nome do arquivo e então rodar um comando “du” mais ou menos assim:

du -hs Fedora-Workstation-Live-x86_64-29-1.2.iso
Medindo arquivos com o DU

Como você pode ver, o terminal me retorna que a ISO do Fedora de cerca de “1.8 GB” de tamanho. Simples, não?

Algumas dicas um pouco mais avançadas para o “du”

Até então você viu a utilização básica do “du” para a medição do tamanho de diretórios e arquivos, mas e se eu quiser organizar a saída do “du” para saber quais arquivos estão ocupando mais espaço, ou para saber quais pastas estão mais cheias de arquivos e ocupando mais espaço, como fazer?

Para isso vamos usar o famoso “pipe” para jogar a saída de um comando em outro. Neste caso vamos usar a saída do “du” e jogá-la no “sort”, outro comando bem bacana para ordenar as coisas:

du -hs * | sort -h

O comando acima está dizendo para o “du” usar o modo “humano” e simplificado (–hs) para todos os arquivos do diretório (*), e jogar a saída desse comando (|) para o que o “sort” ordene eles por tamanho usando valores “humanos” (-h).

Eu apliquei esse comando em uma pasta cheia que ISOs de sistema que eu tenho no computador, assim eu consigo saber qual delas é que ocupa mais espaço, a saída foi a seguinte:

usando o du para medir o tamanho das ISOs

Se eu quiser saber qual destas ISOs foi a última que eu baixei, posso usar o “du” dessa forma:

du -h --time *

Você também pode usar o “du” para analisar certos arquivos que contenham ou não contenham algum texto, por exemplo, quero saber o tamanho de todo os “buntus” que eu tenho nessa coleção de ISOs:

du -hs * | grep buntu -h
Contando ISOS do Ubuntu

Funciona exatamente como o exemplo anterior, com a diferença de que o “grep” está pegando resultados que tenham o texto “buntu” e me exibindo.

Como você deve imaginar, existem muitas combinações possíveis, então é bom estudar as opções que o “–help” do “du” te mostra, mas por fim, vou deixar uma última dica, se você quiser saber a soma total do diretório, além de fazer a contagem individual, use também o parâmetro “-c”, essa forma:

du -hsc diretório_desejado
DU lendo o tamanho total

Repare que no final do comando você consegue ver o total do diretório.

Toda vez que se fala no “du”, muita gente fica pensando em como usá-lo para verificar, não quanto espaço está sendo usado, mas quando espaço resta. Essa lição pode ficar para outro artigo, mas para não deixar você sem a resposta, a forma mais simples de verificar isso não é usando o “du” e sim outro utilitário chamado “df”, abreviação para “disk filesystem”, você pode usá-lo assim para ver como está a utilização das suas partições:

df -h

O resultado será parecido com isso:

Ver utilização de disco via linha de comando

Espero que o artigo tenha te ajudando a entender um pouco mais das ferramentas que estão disponíveis para você utilizar no seu servidor ou mesmo na sua distro de desktop, caso você goste de usar comandos no terminal. Este é só o primeiro artigo de uma série que eu pretendo fazer para mostrar algumas coisas um pouco mais avançadas do mundo Linux, incluindo configurações de arquivos mais sensíveis do sistema, você não perde por esperar! 🙂

Até a próxima!

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!