exclui o diretório com um caractere especial no nome do arquivo

2

Eu tenho esses diretórios complicados que não consigo descobrir como excluir. Se eu correr

ls -ld *

Eu recebo…

drwxrwxr-x 7 user1 taskfmri 2048 Jan 22 15:26 857263
drwxrwx--- 4 user2 taskfmri 2048 Jan 23 16:32 857263?

Existem ~ 50 desses diretórios com '?' no ls. Infelizmente, o '?' não é literalmente um ?, mas é um caractere especial que o terminal não pode exibir

Qual é a melhor maneira de remover todos esses diretórios com caracteres especiais desconhecidos, sem excluir os diretórios bons com nomes quase idênticos?

    
por brainscan 31.01.2014 / 16:51

3 respostas

5

Se todos os seus diretórios tiverem nomes de dígitos e, em seguida, um caractere especial (nem dígito nem letra), você poderá usar

find -maxdepth 1 -type d -regex "./[0-9]*[^0-9a-zA-Z]" -exec rm -r {} \;

    
por 31.01.2014 / 17:07
0

Você não pode simplesmente fazer isso?

rm -r 857263?
    
por 31.01.2014 / 19:47
0

Eu enfrentei um problema semelhante e não consegui descobrir como excluir ./?d do CLI.

Se você tem Vim instalado, ele vem com um navegador visual chamado netrw .

  1. Você pode abrir o diretório usando vim ./ (para abrir o diretório atual)
  2. Use as setas up e down para colocar o cursor sobre o arquivo.
  3. Pressione D (maiúscula d ) para excluir o arquivo.
  4. Pressione y para confirmar.
por 17.01.2018 / 00:32