Examinando o código-fonte de coreutils , descobri que total sempre será exibido ao usar a opção -l nos diretórios .
O uso da opção -d para listar as entradas, em vez do conteúdo do diretório, oculta total . Mas se você executar isso sem argumentos (ou em um diretório), ele mostrará apenas o diretório e não seu conteúdo. Portanto, você precisa de curingas. * corresponde a todos os arquivos e .* corresponde também aos arquivos ocultos (o que corresponde à opção -a ):
ls -ld * .*
Quanto à opção -h , funciona para mim. 1118360 bytes aparecem como 1.1M. Arquivos menores que 1024 aparecem em bytes.