Como excluir um arquivo com este nome no linux: -] ??????? q [duplicar]


14

De alguma forma, um arquivo chamado -]???????qfoi criado no meu terminal. Eu tentei rm -f "-] ??????? q" (entre aspas duplas), mas não foi excluído. (Erro ::) rm: invalid option -- ]. Como eu o apago?


Eu tive problema semelhante, no meu caso o problema era com a implementação samba, apenas tentar ssh para o servidor e, em seguida, removê-lo
Buksy

Respostas:


26

Por exemplo, com:

rm -- '-]???????q'

Onde --significa: "pare de analisar as opções".


Na verdade, eu tive um problema semelhante nem mesmo pensando em - ser um interruptor. Juro que passei duas horas tentando descobrir.
Jeff F.

Muitos aplicativos usam --, acho que é um tipo de padrão de fato devido à getoptfunção.
CYrus

13

Você pode usar o nome do arquivo com rm ou o número do inode com find como:

rm -- -]???????q
# or
  -> ls -i                                                                                                                         
47984689 blah.ui  47983771 __init__.py  
47983773 testpy.e4p  47985161 Ui_blah.py

  -> find -inum 47983773                                                                                                           
./testpy.e4p

  -> find -maxdepth 1 -inum 47983773 -exec rm -i '{}' \;
#or
  -> find -maxdepth 1 -inum 47983773 -delete

Adicionar -maxdepth 1 caso contrário encontrar irá percorrer todos os subdiretórios:find -maxdepth 1 -inum 47983773 -delete
Fabian Ritzmann

@FabianRitzmann boa ligação, eu adicionei.
OneOfOne 29/07

1
Essa deve ser a resposta escolhida. Acessar arquivo com caracteres inválidos em seu nome pelo seu iNode é a única maneira correta.
ScumCoder

1
rm ./"-]???????q"

Aspas duplas impedem que o shell expanda marcas de interrogação. Por exemplo, se você tivesse outro arquivo chamado -] foobar.q :

$ touch ./"-]???????q" ./-]foobar.q
$ echo ./-]???????q
./-]foobar.q ./-]???????q

Oh Eu coloquei as aspas, mas estava faltando o./
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.