Excluir pasta com caractere inválido (codificação)

1

Em minha instalação do Linux Mint 18.3, tive problemas com minha configuração de localidade, o que causou a geração de uma pasta que possui codificação inválida em seu nome.

Gostaria agora de excluir a referida pasta, mas não consigo descobrir como posso fazê-lo. Eu tentei usar meu gerenciador de arquivos (Dolphin), bem como o terminal ( sudo rmdir <folder name> ), mas ambos os comandos falharam, alegando que a pasta fornecida não existe.

No entanto, ele ainda é exibido no gerenciador de arquivos e por meio do comando ls .

sudo rmdir Einf�hrung in die Biochemie/
rmdir: failed to remove 'Einf�hrung': No such file or directory
rmdir: failed to remove 'in': No such file or directory
rmdir: failed to remove 'die': No such file or directory
rmdir: failed to remove 'Biochemie/': No such file or directory

O nome do diretório foi copiado da saída de ls .

    
por Raven 24.02.2018 / 16:37

3 respostas

2

Você pode usar o *

sudo rm -rfi Ein*

ou

sudo rm -rfi *Biochemie

Desde que não haja outros diretórios que correspondam ao padrão, nesse caso você terá que escolher um padrão único.

Você também pode usar rmdir em vez de rm .

Como Jeff Schaller apontou, a opção -i ajudará se o padrão corresponder aos diretórios que não devem ser apagados (pedindo confirmação para cada partida).

    
por 24.02.2018 / 16:40
1

Em tais casos, um gerenciador de arquivos visual como o Thunar é bastante útil.

Se o seu sistema não tiver uma GUI, ferramentas como o comando da meia-noite ajudam muito.

Em casos simples, o uso da conclusão do comando pode ser suficiente.

 rm -i Einf→→

onde o → deve simbolizar a tecla Tab, ou, como o ManOv mostrou, talvez um curinga seja suficiente:

 rm 'Einf?hrung in die Biochemie'
 rm 'Einf*hrung in die Biochemie'

Se você não tiver permissão para instalar essas coisas modernas, encontre ajuda:

com

ls -la Ein*

você pode investigar atributos de arquivo, como tamanho, tempo de modificação, proprietário, atributos, ... para alimentar para encontrar:

find -maxdepth 1 -type f -name "Einf*hrung *chemie" -mtime -4 -mtime +2 -size +2000 -size -2200

Se o resultado for apenas esse arquivo específico, adicione a opção de exclusão. Isso não funciona com todos os tipos de descoberta, mas com o GNU-find:

find -maxdepth 1 -type f -name "Einf*hrung *chemie" -mtime -4 -mtime +2 -size +2000 -size -2200 -delete

Para outras versões de localização, você encontrará muitos exemplos, como excluir arquivos, também aqui.

    
por 24.02.2018 / 20:31
0

A solução foi renomear todos os outros arquivos e pastas no diretório pai do mesmo diretório que também começou com Ein , por exemplo, prefixando-os com um 1_ e, em seguida, digite o tipo de terminal em sudo rmdir Ein e clique na guia para deixar o preenchimento automático fazer o resto para mim.
Isso realmente resolveu os caracteres de forma que eu pudesse finalmente deletar o diretório com esse comando.

    
por 24.02.2018 / 16:37