Os comandos df
e du
relatam o uso do espaço em disco no shell Bash usado no Linux, macOS e muitos outros sistemas operacionais semelhantes ao Unix. Esses comandos permitem identificar facilmente o que está consumindo o armazenamento do sistema.
Visualizando o Espaço Total, Disponível e Usado em Disco
O Bash contém dois comandos úteis relacionados ao espaço em disco. Para descobrir o espaço em disco disponível e usado, use df
(sistemas de arquivos em disco, às vezes chamados de disco livre). Para descobrir o que está ocupando o espaço em disco usado, use du
(uso do disco).
Digite df
e pressione Enter em uma janela de terminal Bash para começar. Você verá muitos resultados semelhantes à captura de tela abaixo. Usar df
sem nenhuma opção exibirá o espaço disponível e usado para todos os sistemas de arquivos montados. À primeira vista, pode parecer impenetrável, mas é muito fácil de entender.
df
Cada linha do display é composta por seis colunas.
- Sistema de arquivos : O nome deste sistema de arquivos.
- Blocos de 1 K: O número de blocos de 1 K que estão disponíveis neste sistema de arquivos.
- Usado: O número de blocos de 1K que foram usados neste sistema de arquivos.
- Disponível: O número de blocos de 1K que não são usados neste sistema de arquivos.
- % De uso: a quantidade de espaço usado neste sistema de arquivos fornecida como uma porcentagem.
- Arquivo: o nome do sistema de arquivos, se especificado na linha de comando.
- Montado em: O ponto de montagem do sistema de arquivos.
Você pode substituir as contagens de bloco de 1K por uma saída mais útil usando a opção -B
(tamanho do bloco). Para usar esta opção, digite df,
um espaço e a seguir -B
uma letra da lista de K, M, G, T, P, E, Z ou Y. Essas letras representam o quilo, mega, giga, tera, peta, exa, valores zeta e yotta da escala múltipla de 1024.
Por exemplo, para ver os números de uso do disco em megabytes, você usaria o seguinte comando. Observe que não há espaço entre B e M.
df -BM
A opção -h
(legível por humanos) instrui o df
uso da unidade mais aplicável para o tamanho de cada sistema de arquivos. Na próxima saída, observe que existem sistemas de arquivos com tamanhos de gigabyte, megabyte e até kilobyte.
df -h
Se você precisar ver as informações representadas em números de inodes, use a -i
opção (inodes). Um inode é uma estrutura de dados usada por sistemas de arquivos Linux para descrever arquivos e armazenar metadados sobre eles. No Linux, os inodes armazenam dados como nome, data de modificação, posição no disco rígido e assim por diante para cada arquivo e diretório. Isso não será útil para a maioria das pessoas, mas os administradores de sistema às vezes devem consultar esse tipo de informação.
df -i
A menos que seja instruído a não fazê-lo, df
fornecerá informações sobre todos os sistemas de arquivos montados. Isso pode levar a uma tela desordenada com muita saída. Por exemplo, as /dev/loop
entradas nas listas são pseudo sistemas de arquivos que permitem que um arquivo seja montado como se fosse uma partição. Se você usar o novo snap
método Ubuntu de instalação de aplicativos, poderá adquirir muitos deles. O espaço disponível neles sempre será 0 porque eles não são realmente um sistema de arquivos, então não precisamos vê-los.
Podemos dizer df
para excluir sistemas de arquivos de um tipo específico. Para fazer isso, precisamos saber que tipo de sistema de arquivos desejamos excluir. A opção -T
(tipo de impressão) nos fornecerá essa informação. Ele instrui df
a incluir o tipo de sistema de arquivos na saída.
df -T
As /dev/loop
entradas são todos squashfs
sistemas de arquivos. Podemos excluí-los com o seguinte comando:
df -x squashfs
Isso nos dá uma saída mais gerenciável. Para obter um total, podemos adicionar a --total
opção.
df -x squashfs --total
Podemos pedir df
para incluir apenas sistemas de arquivos de um tipo particular, usando a -t
opção (tipo).
df -t ext4
Se quisermos ver os tamanhos de um conjunto de sistemas de arquivos, podemos especificá-los pelo nome. Os nomes das unidades no Linux são alfabéticos. A primeira unidade é chamada /dev/sda
, a segunda unidade é /dev/sdb
, e assim por diante. As partições são numeradas. Assim /dev/sda1
é a primeira partição da unidade /dev/sda
. Dizemos df
para retornar informações sobre um determinado sistema de arquivos passando o nome do sistema de arquivos como um parâmetro de comando. Vejamos a primeira partição do primeiro disco rígido.
df / dev / sda1
Observe que você pode usar curingas no nome do sistema de arquivos, onde *
representa qualquer conjunto de caracteres e ?
representa qualquer caractere único. Portanto, para observar todas as partições na primeira unidade, poderíamos usar:
df / dev / sda *
Podemos pedir df
para relatar um conjunto de sistemas de arquivos nomeados. Ele estamos solicitando os tamanhos do /dev
e /run
sistemas de arquivos, e nós gostaríamos de uma total.
df -h --total / dev / run
Para personalizar ainda mais a exibição, podemos dizer df
quais colunas incluir. Para fazer isso, use a --output
opção e forneça uma lista separada por vírgulas dos nomes das colunas necessárias. Certifique-se de não incluir espaços na lista separada por vírgulas.
- source: O nome do sistema de arquivos.
- fstype: O tipo do sistema de arquivos.
- itotal: O tamanho do sistema de arquivos em inodes.
- iused: O espaço usado no sistema de arquivos em inodes.
- iavail: O espaço disponível no sistema de arquivos em inodes.
- ipcent: A porcentagem de espaço usado no sistema de arquivos em inodes, como uma porcentagem.
- size: O tamanho do sistema de arquivos, por padrão em blocos de 1K.
- usado: O espaço usado no sistema de arquivos, por padrão em blocos de 1K.
- avail: O espaço disponível no sistema de arquivos, por padrão em blocos de 1K.
- pcent: A porcentagem de espaço usado no sistema de arquivos em inodes, por padrão em blocos de 1K.
- arquivo: O nome do sistema de arquivos, se especificado na linha de comando.
- alvo: O ponto de montagem do sistema de arquivos.
Vamos pedir df
para relatar sobre a primeira partição da primeira unidade, com números legíveis por humanos e com as colunas source, fstype, size, used, avail e pcent:
df -h / dev / sda1 --output = source, fstype, size, used, avail, pcent
Comandos longos são candidatos perfeitos para serem transformados em apelidos. Podemos criar um alias dfc
(para df custom
) digitando o seguinte e pressionando Enter:
alias dfc = "df -h / dev / sda1 --output = source, fstype, size, used, avail, pcent"
Digitar dfc
e pressionar Enter terá o mesmo efeito que digitar no comando longo. Para tornar este alias permanente, adicione-o ao seu arquivo ou ..
bashrc
.bash_aliases
Temos procurado maneiras de refinar a saída df
para que as informações exibidas correspondam aos seus requisitos. Se você deseja seguir a abordagem oposta e df
retornar todas as informações, é possível usar a -a
opção (todos) e a --output
opção conforme mostrado abaixo. A -a
opção (todos) pede df
para incluir todos os sistemas de arquivos, e usar a --output
opção sem uma lista de colunas separada por vírgulas faz df
com que todas as colunas sejam incluídas.
df -a --output
Canalizar a saída df
através do less
comando é uma maneira conveniente de revisar a grande quantidade de saída que isso pode produzir.
df -a --saída | Menos
Descobrir o que está ocupando o espaço do disco usado
Vamos fazer uma investigação e descobrir o que está ocupando espaço neste PC. Começaremos com um de nossos df
comandos.
df -h -t ext4
Há 78% de espaço em disco usado na primeira partição do primeiro disco rígido. Podemos usar o du
comando para mostrar quais pastas contêm mais dados. A execução do du
comando sem opções exibirá uma lista de todos os diretórios e subdiretórios abaixo do diretório em que o du
comando foi executado. Se você fizer isso a partir da sua pasta pessoal, a lista será muito longa.
du
O formato de saída é muito simples. Cada linha mostra o tamanho e o nome de um diretório. Por padrão, o tamanho é mostrado em blocos de 1K. Para forçar o du
uso de um tamanho de bloco diferente, use a opção -B
(tamanho do bloco). Para usar esta opção du
, digite um espaço e, em seguida, -B
uma letra da lista de K, M, G, T, P, E, Z e Y, como fizemos acima df
. Para usar blocos de 1 milhão, use este comando:
du -BM
Da mesma forma df
, du
tem uma opção legível por humanos -h
, que usa uma gama de tamanhos de bloco de acordo com o tamanho de cada diretório.
du -h
A -s
opção (resumir) fornece um total para cada diretório sem exibir os subdiretórios dentro de cada diretório. O comando a seguir pede du
para retornar informações em formato de resumo, em números legíveis por humanos, para todos os diretórios (*) abaixo do diretório de trabalho atual.
du -h -s *
A pasta Imagem contém a maioria dos dados, de longe. Podemos pedir du
para classificar as pastas em tamanho da maior para a menor.
du -sm Imagens / * | sort -nr
Ao refinar as informações retornadas por df
e du
é fácil de descobrir quanto espaço em disco está em uso, e para descobrir o que está a ocupar esse espaço. Você pode então tomar uma decisão informada sobre mover alguns dados para outro armazenamento, adicionar outro disco rígido ao computador ou excluir dados redundantes.
Esses comandos têm muitas opções. Descrevemos as opções mais úteis aqui, mas você pode ver uma lista completa das opções para o comando df e para o comando du nas páginas de manual do Linux.