Cara menghapus file dengan nama ini di linux: -] ??????? q [duplikat]

14

Entah bagaimana file bernama -]???????qdibuat di terminal saya. Saya mencoba rm -f "-] ??????? q" (dalam tanda kutip ganda), tetapi tidak dihapus. (Kesalahan ::) rm: invalid option -- ]. Bagaimana cara saya menghapusnya?

djsmiley2k TMW
sumber
Saya memiliki masalah yang sama, dalam kasus saya masalahnya adalah dengan implementasi samba, coba saja ssh ke server dan kemudian hapus
Buksy

Jawaban:

26

Misalnya, dengan:

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

Di mana --berarti: "berhenti opsi penguraian".

cYrus
sumber
Memang, saya mengalami masalah yang sama bahkan tidak memikirkan - menjadi saklar. Aku bersumpah aku menghabiskan waktu 2 jam untuk mencari tahu.
Jeff F.
Banyak aplikasi yang digunakan --, kira itu semacam standar de facto karena getoptfungsinya.
cYrus
13

Anda dapat menggunakan nama file dengan rm atau nomor inode dengan find seperti:

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
OneOfOne
sumber
Tambahkan -maxdepth 1 jika tidak menemukan akan beralih melalui semua subdirektori:find -maxdepth 1 -inum 47983773 -delete
Fabian Ritzmann
@FabianRitzmann panggilan bagus, saya menambahkannya.
OneOfOne
1
Ini harus menjadi jawaban yang dipilih. Mengakses file dengan karakter yang tidak valid dalam namanya dengan iNode adalah satu-satunya cara yang benar.
ScumCoder
1
rm ./"-]???????q"

Kutipan ganda mencegah shell dari memperluas tanda interogasi. Misalnya, jika Anda memiliki file lain bernama -] foobar.q :

$ touch ./"-]???????q" ./-]foobar.q
$ echo ./-]???????q
./-]foobar.q ./-]???????q
marco
sumber
Oh Saya menaruh tanda kutip, tetapi hilang./