Estou obtendo resultados confusos de du em um sistema criptografado. Usei sudo
em todos os lugares caso houvesse algum arquivo inacessível, mas isso não ajudou. Estou usando o Linux Mint 21.3. Não sei dizer se meu diretório inicial tem 41 ou 81 GB.
sudo du -sh /*
inclui esta linha
81G /casa
sudo du -sh /home/*
41G /casa/pedro
sudo ls -la /home
mostra apenas os diretórios .ecrypts e peter
sudo du -sh /home/.ecrypts/
41G /home/.ecrypts/
sudo ls -R /home/.ecryptfs/
mostra apenas o diretório vazio Peter.
Como o .ecrypts pode ter 41 GB quando está vazio? Existe algum recurso obscuro da criptografia que significa que tenho 41 GB de dados utilizáveis, bem como 40 GB de dados criptografados?
Eu li em https://unix.stackexchange.com/a/303091/321108 que du
não inclui arquivos ocultos na expansão, portanto du
não irei reportá-los.
cd
du -sh .
ainda 41G
Obrigado a @terdon pelas principais perguntas em um comentário. Um erro ingênuo esquecer de procurar diretórios ocultos em um diretório oculto.
sudo du -sh /home/.ecryptfs/peter/.Private/
41G
Mistério resolvido!
Você já tinha o motivo, só não percebeu que era o problema:
Isso não é sobre
du
, é sobre como*
funciona. Você estava executando,du /home/*
o que significa "executar com basedu
no resultado da expansão do globo/home/*
". E*
não corresponde aos arquivos ocultos por padrão:Veja como
*
não corresponde a nenhum dos dotfiles? Foi exatamente isso que você encontrou quando correudu /home/*
em vez dedu /home/
. O*
foi expandido apenas para a lista de arquivos e diretórios não ocultos, mas você tinha o/home/.ecryptfs
diretório oculto que foi ignorado. Por outro lado, ele é selecionadosudo du -sh /*
porque/*
se expande para a lista de arquivos e diretórios não ocultos diretamente abaixo de/
e que inclui/home
, então tudo/home
foi contado.A menos que você queira explicitamente limitar os resultados apenas a arquivos e diretórios não ocultos, nunca use
du /path/to/*
e, em vez disso, sempre usedu /path/to/
(ou/path/to
).