O 12 que você vê não é o número de arquivos, mas o número de blocos de disco consumidos.
De info coreutils 'ls invocation' :
For each directory that is listed, preface the files with a line
'total BLOCKS', where BLOCKS is the total disk allocation for all
files in that directory. The block size currently defaults to 1024
bytes, but this can be overridden (*note Block size::). The
BLOCKS computed counts each hard link separately; this is arguably
a deficiency.
O total passa de 12 para 20 quando você usa ls -la em vez de ls -l porque está contando dois diretórios adicionais: . e .. . Você está usando quatro blocos de disco para cada diretório (vazio), então seu total vai de 3 × 4 a 5 × 4. (Com toda a probabilidade, você está usando um bloco de disco de 4096 bytes para cada diretório como indica a página info , o utilitário não verifica o formato do disco, mas supõe um tamanho de bloco de 1024 , a menos que seja instruído de outra forma.
Se você quiser simplesmente obter o número de arquivos, tente algo como
ls | wc -l