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'

Où --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.