Como remover os arquivos denotados do meu diretório usando o comando linux?

2

Por que os arquivos são criados com ~ símbolo?

Ao remover o arquivo de símbolo, isso afetará o arquivo original ou não afetará?

Meus arquivos: (obtido pelo comando linux ls)

DG_Item122   DG_Item147   DG_Item175   DG_Item200   DG_Item226   DG_Item249~  DG_Item271~  DG_Item293~  DG_Item314~  DG_Item49    DG_Item80
DG_Item122~  DG_Item148   DG_Item175~  DG_Item200~  DG_Item226~  DG_Item25    DG_Item272   DG_Item294   DG_Item315   DG_Item5     DG_Item80~

Minha saída esperada:

Arquivos a serem impressos sem o til.

    
por example file 20.01.2017 / 10:11

2 respostas

5

Ao editar arquivos com determinados editores de texto, o editor pode salvar um backup do arquivo com um sufixo ~ . Outros editores podem usar outros sufixos, mas ~ é de longe o sufixo de backup mais usado no Unix.

Você pode remover esses arquivos se achar que não precisa mais dos backups:

$ rm *~

Se você deseja manter os arquivos de backup, mas não quer vê-los na saída de ls , então você pode usar

$ ls -B

ou

$ ls --ignore-backups

(que é a mesma coisa). Esses sinalizadores farão ls ignorar arquivos que correspondam especificamente ao padrão de globbing de nome de arquivo do shell *~ (já que é um sufixo de backup tão comum). Para ocultar a listagem de outros arquivos, use, por exemplo, --hide='*.bak' (isso ocultará qualquer arquivo com um sufixo .bak ). Os sinalizadores -B e --ignore-backups podem ser vistos como atalhos para --hide='*~' .

Para evitar ter que digitar -B todas as vezes, você pode adicionar o seguinte ao seu arquivo ~/.bashrc :

function ls {
  command ls --ignore-backups "$@"
}

Isso efetivamente "substituirá" o comando ls por uma função de shell que chama o% realls com o sinalizador --ignore-backups adicionado.

Em vez de uma função de shell, você poderia adicionar um alias:

alias ls='command ls -B "$@"'

... se você acha que parece mais puro.

Observação: as opções -B / --ignore-backups , bem como --hide , são extensões GNU para ls disponíveis no ls implementado pelo pacote GNU coreutils, mas isso provavelmente já estará instalado na sua máquina Linux de qualquer maneira.

Quanto aos aliases vs. funções do shell, o manual bash contém a frase

For almost every purpose, aliases are superseded by shell functions.

    
por 20.01.2017 / 10:28
1

Esses arquivos são normalmente criados por alguns editores de texto e significam que são backups de seus arquivos originais.

Se você não quiser ver esses arquivos quando ls :

ls | grep -v '~$'

ou com o GNU ls :

ls --hide='*~'

Se você quiser removê-los:

rm ./*~

A remoção deles não afetará seus arquivos originais (aqueles sem ~ no final)

    
por 20.01.2017 / 10:14