O erro que você está recebendo significa que não há nenhum arquivo ou diretório oculto no diretório atual. .[!.]*
se expande para corresponder a qualquer arquivo ou diretório cujo nome comece com “.” seguido por qualquer coisa, menos “.”; se não corresponder a nada, fica como está por padrão. Portanto, no seu caso, du
é executado com .[!.]*
como argumento, em vez de nomes de arquivos ou diretórios reais, e produz a mensagem de erro que você está vendo.
Você pode ativar nullglob
para alterar o comportamento do shell aqui:
shopt -s nullglob
Em seguida, o shell removerá padrões que não correspondem a nada e du
relatará o uso do diretório atual se nada corresponder (esse é o comportamento padrão na ausência de argumentos).
Para conseguir o que você procura, no Bash, você deve fazer isso:
du -sh .[!.]*/ */
Isso expandirá para todos os diretórios no diretório atual, incluindo os ocultos. Se nullglob
não estiver ativado, ainda produzirá mensagens de erro, mas você verá os tamanhos de qualquer diretório correspondente.