du
should not report different sizes since the *
simply expands to the actual folder names in Bash, should it?
Deveria, ainda é apenas um du
do processo e está tentando ser inteligente.
Fundamentação: Se du *
não fosse inteligente, seria difícil torná-lo inteligente. O inverso é fácil, é muito simples fazer o smart du
"mudo". Se você quiser resultados totalmente independentes, basta executar du
-s separados para os dois diretórios.
Poucos exemplos gerais de invocação separada de du
-s:
for d in *; do du -hs "$d"; done
find . -exec du -hs {} \;
Eles diferem nos detalhes. O find
-based pode ser personalizado (por exemplo, comece com find . -type d …
).
Verifique também a opção --apparent-size
se o seu du
for compatível.
É um problema diferente se fazer ou não du
"mudo" será útil para você, já que você quer "descobrir quais arquivos / pastas ocupam mais espaço". A outra resposta está correta:
If the files in a folder correspond to inodes with multiples links, erasing them in that folder won't change anything.
O comportamento inteligente de du
parece se adequar muito mais às suas necessidades do que as "forçadas". Meu conselho é tirar vantagem disso e o fato du
processa seus argumentos na sequência dada. Isso significa que o tamanho relatado do último objeto é o que você obterá se remover este objeto e somente este objeto (a menos que contenha hardlinks para outro local em que esse du
em particular não espreitasse ).
No seu exemplo, o comando expandido aparentemente foi:
du -hs 2018-09-21_16-14-57 2018-10-06_07-04-27
O resultado indica que você obterá 910M
se remover apenas 2018-10-06_07-04-27
. Agora tente outra sequência:
du -hs 2018-10-06_07-04-27 2018-09-21_16-14-57
A última linha da saída informará quanto espaço você terá se remover apenas 2018-09-21_16-14-57
.
Se eu fosse você, também investigaria ncdu
(ferramenta interativa) e seu comportamento.