Como posso deletar um arquivo chamado “”?

22

Eu estava executando um script Python que não funcionava corretamente e usei sudo para criar um arquivo chamado > .

Como posso me livrar desse arquivo?

Claro, quando tento sudo rm > , recebo o erro bash: syntax error near unexpected token 'newline' , porque acho que estou tentando redirecionar a saída de rm .

Suas permissões são -rw-r--r-- .

    
por APerson 30.05.2015 / 17:02

5 respostas

54

Qualquer um deles deve funcionar:

sudo rm \>
sudo rm '>'
sudo rm ">"
sudo find . -name '>' -delete
sudo find . -name '>' -exec rm {} +

Observe que os dois últimos comandos, aqueles que usam find , encontrarão todos os arquivos ou diretórios denominados > na pasta atual e em todas as suas subpastas. Para evitar isso, use o GNU find:

sudo find . -maxdepth 1 -name '>' -delete
sudo find . -maxdepth 1 -name '>' -exec rm {} +
    
por 30.05.2015 / 17:24
18

Você também pode usar o Python para removê-lo:

python -c 'import os;os.remove(">")'

Com POSIX find :

find . ! -name . -prune -type f -name '>' -exec rm -f {} +
    
por 30.05.2015 / 17:30
1

O que acabei fazendo inicialmente também funciona:

sudo sh -c "rm \>"

Esta é, naturalmente, uma variante no mais simples sudo rm \> .

    
por 01.06.2015 / 21:48
0

Eu tentei isso como um comentário, mas saiu em uma linha

[Harry@localhost]~% touch ">"
[Harry@localhost]~% cat > ">"
line 1
line 2
[Harry@localhost]~% cat ">"
line 1
line 2
[Harry@localhost]~% ls -l ">"
-rw-r--r-- 1 Harry Harry 14 Jun  5 12:04 >
[Harry@localhost]~% rm ">"
[Harry@localhost]~% ls -l ">"
ls: cannot access >: No such file or directory
[Harry@localhost]~% 
    
por 05.06.2015 / 13:10
0

Cite o caractere para que ele não seja interpretado pelo shell como um redirecionamento:

sudo rm '>'

No entanto, se você tiver outros arquivos com caracteres estranhos, o método mais seguro é abrir um explorador de arquivos da GUI, como nautilus , e excluí-lo.

    
por 20.12.2016 / 10:04