Parece haver duas possibilidades aqui:
- Você está sendo confundido pelo comportamento (reconhecidamente confuso) de
df
e espaço reservado para a raiz - Você excluiu (desvinculou) um link para os arquivos, há mais.
Pessoalmente, suspeito que você esteja vendo o número 1. Detalhes abaixo, juntamente com algumas observações finais.
Confundindo o comportamento df
Se você preencher um sistema de arquivos completamente, como usuário não-root, será assim:
Filesystem Size Used Avail Use% Mounted on
/dev/md10 248M 236M 1.0K 100% /boot
mas há espaço reservado para raiz, normalmente 5%. Se o root encher, é assim que o df
(no caso deste minúsculo sistema de arquivos, são outros 13 MB):
Filesystem Size Used Avail Use% Mounted on
/dev/md10 248M 248M 0 100% /boot
Note que passou de 100% usado para ... 100% usado. Apesar de ser mais 5% usado. O campo Used
subiu conforme o esperado, mas o campo avail
acabou de mudar de 1K para 0.
E o que acontece quando você remove os primeiros 13 MB de dados? Bem, você volta para a primeira saída - você liberou 5%, mas ainda está em 100% em uso e quase nenhum disponível.
Conclusão: quando você quiser ver quanto espaço está realmente liberando, veja a coluna Used
- não Avail
, não Use%
.
Não foi o último hardlink
rm
na verdade não exclui arquivos. Ele os desvincula, isto é, remove links de hardware para eles. Cada hardlink dá um nome ao arquivo, basicamente. Quando um arquivo não tem links deixados (e não está aberto, etc.) então, somente então, o arquivo é realmente deletado.
Um arquivo é realmente identificado de maneira única em um sistema de arquivos, independentemente do número de nomes que possui, pelo seu número de inode. Se você soubesse os números de inode para esses arquivos, você poderia usar find -inum
para encontrar todos os hardlinks para eles, mas você provavelmente não o faria. Se você tiver alguns arquivos relacionados para limpar, poderá obter os números de inode daqueles usando stat
. Você pode usar find /path/to/mount -inum NUMBER
para encontrar todos os hardlinks para esse arquivo (incluindo o nome que você acabou de criar). Além disso, os números de inode podem ser reutilizados quando um arquivo é realmente excluído.
Lembre-se: os números de inode são por sistema de arquivos . Portanto, dois arquivos diferentes podem ser o inode 42 em dois sistemas de arquivos diferentes. Somente no mesmo sistema de arquivos é inode 42 garantido para sempre ser o mesmo arquivo. Além disso, os números de inodes nem sempre funcionam corretamente com sistemas de arquivos de rede ou sistemas de arquivos não-Unix. Mas você está usando ext4, onde definitivamente o faz.
Além disso, você terá que encontrar outros nomes para remover as formas normais (por exemplo, procurando por itens grandes com xdiskusage
como você já está fazendo)
Observações gerais
Lixeiras são apenas diretórios. Se eles estivessem cheios de lixo eletrônico que você não conseguiu excluir, eles serão exibidos em xdiskusage
.
Você deve considerar um sistema de backup que possa lidar melhor com a exclusão de backups antigos para você - fazer isso manualmente é propenso a erros. Pior, também pode ser esquecido, levando a falhas de backup - e as restaurações são geralmente de dados recentes (por exemplo, exclusão acidental, arquivo corrompido, falha de disco), não dados antigos ("ah sim, eu fiz Preciso daquela coisa que eu deletei no ano passado ... "), então" falha no backup total do disco "significa que você está realmente descartando os dados mais valiosos (o novo backup) para preservar o menos valioso data (aquele backup de dois anos atrás).