Saya hanya memperhatikan bahwa saya memiliki file bernama ~
di ~
-directory saya .
$ ls -la ~
...
-rw-r----- 1 x1 x1 733962240 Mar 1 17:55 ~
...
Ada yang tahu bagaimana saya bisa mv
atau rm
itu?
linux
bash
filesystems
scrrr
sumber
sumber
Jawaban:
Solusi paling hebat ketika datang ke file yang tidak dapat dihapus dengan cara biasa:
Kolom pertama akan menampilkan nomor inode file.
Ini akan menghapus file dengan nomor inode yang ditentukan setelah verifikasi.
sumber
-delete
alih-alih-exec
, lalu menyadari bahwa Anda menggunakanrm -i
yang merupakan ide bagus jadi saya memutar kembali. Maaf.Anda harus dapat merujuk ke file itu sebagai
~/~
(tanpa tanda kutip) karena tilde-expansion hanya menerapkan tilde (~
) di bagian paling awal kata.sumber
rm ./~
, untuk alasan yang sama Anda katakan./~
secara harfiah berarti "file atau folder yang disebutkan~
dalam direktori saat ini" . Tidak ada retas seperti karakter pelarian atau referensi inode../~
tidak. Setelah lima tahun, ingatan saya sedikit kabur, tetapi saya pikir itu sebabnya saya menyarankan~/~
daripada yang lebih normal./~
: Pertanyaannya secara khusus mengacu pada "file yang bernama~
dalam direktori home [OP] "; tidak "di direktori saat ini".Mengutipnya (
rm '~'
) atau menghindarinya (rm \~
).Itu selalu salah satu dari mereka (juga untuk misalnya
$
), atau menambahkan--
untuk mencegah nama file dari ditafsirkan sebagai argumen:rm -- -i
menghapus file bernama-i
; juga bergunarm -- *
ketika Anda ingin menghapus semua file di direktori saat ini: Tidak disengajarm -f *
hanya karena file tersebut dinamai seperti itu.sumber
--
hanya menghentikan argumen berikut yang ditafsirkan sebagai parameter - itu tidak mencegah shell melakukan ekspansi (mis.*
), itulah yang terjadi di sini. (Saya tahu Anda menyarankan itu sebagai alternatif untuk situasi lain, tetapi peringatan akan baik.)