Comment supprimer un fichier avec ce nom sur linux: -] ??????? q [duplicate]


14

D'une manière ou d'une autre, un fichier nommé a -]???????qété créé sur mon terminal. J'ai essayé rm -f "-] ??????? q" (entre guillemets), mais il n'a pas été supprimé. (Erreur ::) rm: invalid option -- ]. Comment puis-je le supprimer?


J'ai eu un problème similaire, dans mon cas, le problème était avec la mise en œuvre de samba, essayez simplement de ssh sur le serveur, puis supprimez-le
Buksy

Réponses:


26

Par exemple, avec:

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

--signifie: "arrêter l'analyse des options".


En effet, j'ai rencontré un problème similaire auquel je ne pensais même pas - être un commutateur. Je jure que j'ai passé environ 2 heures à essayer de le comprendre.
Jeff F.

De nombreuses applications utilisent --, je suppose que c'est une sorte de standard de facto en raison de la getoptfonction.
cYrus

13

Vous pouvez utiliser le nom de fichier avec rm ou le numéro d'inode avec find comme:

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

Ajoutez -maxdepth 1 sinon find itérera dans tous les sous-répertoires:find -maxdepth 1 -inum 47983773 -delete
Fabian Ritzmann

@FabianRitzmann bon appel, je l'ai ajouté.
OneOfOne

1
Ce devrait être la réponse choisie. L'accès au fichier avec des caractères non valides dans son nom par son iNode est le seul moyen correct.
ScumCoder

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

Les guillemets doubles empêchent le shell d'étendre les marques d'interrogation. Par exemple, si vous aviez un autre fichier appelé -] foobar.q :

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

Oh. J'ai mis les guillemets, mais il ./
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.