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.