Come eliminare il file con questo nome su linux: -] ??????? q [duplicato]


14

In qualche modo un file chiamato è -]???????qstato creato sul mio terminale. Ho provato rm -f "-] ??????? q" (tra virgolette doppie), ma non è stato eliminato. (Errore ::) rm: invalid option -- ]. Come lo elimino?


Ho avuto un problema simile, nel mio caso il problema era con l'implementazione di samba, basta provare a ssh sul server e poi rimuoverlo
Buksy

Risposte:


26

Ad esempio, con:

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

Dove --significa: "smetti di analizzare le opzioni".


In effetti, ho riscontrato un problema simile senza nemmeno pensarci: essere un interruttore. Giuro che ho trascorso circa 2 ore a cercare di capirlo.
Jeff F.

Molte applicazioni usano --, immagino che sia una sorta di standard di fatto a causa della getoptfunzione.
cYrus

13

Puoi usare il nome del file con rm o il numero dell'inode con find like:

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

Aggiungi -maxdepth 1 altrimenti troverà l'iterazione in tutte le sottodirectory:find -maxdepth 1 -inum 47983773 -delete
Fabian Ritzmann,

@FabianRitzmann bella chiamata, l'ho aggiunto.
OneOfOne,

1
Questa dovrebbe essere la risposta scelta. L'accesso al file con caratteri non validi nel suo nome tramite iNode è l'unico modo corretto.
ScumCoder il

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

Le virgolette doppie impediscono alla shell di espandere i segni di interrogazione. Ad esempio, se avessi un altro file chiamato -] foobar.q :

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

Oh. Ho messo le virgolette, ma mancava il./
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.