Não é possível "rm" um arquivo chamado "() -." devido a "Nenhum tal arquivo ou diretório"

1

Um script que escrevi nomeou um arquivo "() -." de acordo com o Filezilla. O Filezilla não pôde deletá-lo do servidor, então eu tentei "rm" () -. "De dentro da pasta que continha e recebi" rm: não consigo remover '() -.': Não existe tal arquivo ou diretório ". "ls", que mostra ...

 () -  .                                               03_The_Kill_30_Seconds_to_Mars.mp3                 Crooked X (Crooked X) - 08 Nightmare.mp3
01 Attack - 30 Seconds to Mars.mp3                     03 Wave of Mutilation - Pixies.mp3                 Danzig (Danzig) - 01 Twist Of Cain.mp3

Ele lista o arquivo em questão, embora aqui pareça que ele pode conter um espaço inicial e dois espaços entre o "-" e o ".". Então eu tentei "rm" muitas combinações de espaços misturados entre os outros personagens sem sucesso.

Eu também tentei renomeá-lo, mas com o mesmo erro.

Meu fallback é substituí-lo por um arquivo de 0KB com o mesmo nome, mas, eu prefiro apagá-lo, (read- eu sou OCD e está me irritando que ele apareça em "ls" )

Obrigado por qualquer ajuda.

Em execução: Ubuntu 12.04 LTS Server Edition

    
por Seminecis 03.12.2012 / 18:31

4 respostas

1

Do terminal ... Primeiro, vamos testar antes de tentar. Crie um arquivo semelhante com este comando:

touch \(\)

Em seguida, remova o arquivo:

rm \(\)

O símbolo \ é usado para caracteres especiais.

No seu caso, desde que o arquivo seja o único que começa com (), você deve usar este comando

rm -i \(\)*

O -i torna-o interativo (pede sua permissão).

    
por philshem 03.12.2012 / 18:39
1

Como o nome do arquivo contém espaços, você precisa incluir o nome do arquivo entre aspas.

Um problema por que você não pode excluir o arquivo é porque talvez não tenha permissões para isso.

Então, tente sudo rm " () - ." .

Isso deve fazer o truque. Procure também por um espaço à direita depois de '.'

    
por To Do 03.12.2012 / 18:36
1

O que eu costumo fazer em casos como esse é usar o preenchimento de tabulação para garantir que tudo saia corretamente. Os passos seriam:

  • abra um terminal e navegue até a pasta com o nome do arquivo incorreto
  • digite "rm \" (uma barra invertida seguida por um espaço)
  • clique em tab
  • que deve expandir o nome do arquivo com as fugas necessárias

Isso presume que é o único nome do arquivo que você inicia com um espaço - se houver mais de um, talvez seja necessário digitar e escapar manualmente dos primeiros dois caracteres para que ele possa distinguir qual deles você quer dizer.

    
por ImaginaryRobots 03.12.2012 / 19:17
0

Uma solução alternativa (apesar de usar corretamente rm pode ser preferível) é usar o comando da meia-noite, por exemplo

$ sudo apt-get install mc
$ mc

Então,

  • vá para o diretório que contém o arquivo (use as setas para cima / para baixo para selecionar diretórios e digite cd para eles),
  • selecione o arquivo que você deseja excluir (CTRL-T)
  • elimine o ficheiro (F8)
por Giorgio 03.12.2012 / 19:08