ls
não armazena nomes de arquivos em cache. Ele realmente mostra exatamente o que está atualmente no sistema de arquivos. No entanto, como @Ravan sugeriu, pode haver nomes semelhantes arquivos em seu diretório. Normalmente, são caches de tempo de execução ou arquivos de bloqueio criados por programas como o Vim e o Emacs, mas podem ser praticamente qualquer coisa. Por exemplo, se eu fizer o seguinte em um terminal:
$ touch foo
$ vim foo
Então, vou ver o seguinte em outro terminal:
$ ls -A
foo .foo.swp
.foo.swp
é um arquivo temporário oculto que será excluído se o Vim sair bem.
Esses arquivos podem ser excluídos com segurança se forem deixados ao redor de sessões de edição anteriores que não estão mais abertas. Apenas certifique-se de citar os nomes dos arquivos, pois eles podem conter caracteres especiais como til ( ~
):
$ rm '.foo~'