Por que o comando ls mostra arquivos apagados?

3

Quando eu digito ls no terminal, ele mostra os arquivos que estão presentes, assim como os arquivos que eu deletei. Como posso ver os arquivos atuais somente e por que o ls mantém um registro dos arquivos excluídos?

ls mostra os nomes dos arquivos excluídos seguidos por um til ( ~ ).

    
por Vasu Dev Garg 23.08.2015 / 12:31

3 respostas

4

Você pode usar

printf '%s\n' *

echo *

ls -U

qualquer um deles em vez de ls reference aqui

O símbolo ~ pode executar cache ou arquivos de backup .Para isso, consulte aqui

Eu editei isto depois de ver o seu comentário, use este comando para deletar esses arquivos de backup (arquivos com o símbolo ~ )

find ./ -name '*~' | xargs rm
    
por Ravan 23.08.2015 / 12:45
9

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~'
    
por l0b0 23.08.2015 / 12:39
1

O nome seguido por "~" é na verdade um arquivo de cache. Quando você exclui o arquivo, ele ainda pode permanecer como um arquivo oculto para o nautilus, mas o comando "ls" irá mostrá-lo.

Execute rm *~ para remover esses arquivos.

    
por BernardoGO 16.10.2015 / 10:05