Apa ide di balik rm tidak menghapus file yang tidak dapat ditulis secara default?

13

Apa ide di balik rm tidak menghapus file yang tidak dapat ditulis secara default? Setiap kali Anda ingin menghapus file yang bukan file yang dapat ditulisi untuk pengguna saat ini tetapi Anda memiliki izin tulis pada direktori, dapatkan peringatan ini dan Anda perlu memberi tanda `y 'untuk mengonfirmasi penghapusan:

rm: remove write-protected regular file 

Saya bertanya-tanya mengapa file yang tidak dapat ditulis diperlakukan dengan cara khusus seperti itu? Satu hal yang terlintas di benak saya adalah bahwa file-file tersebut biasanya file konfigurasi pengguna yang berisi data rahasia pengguna seperti kata sandi terenkripsi sehingga rm memperingatkan sebelum menghapusnya. Sekarang, apa alasan sebenarnya?

pengguna1042840
sumber

Jawaban:

16

Itu karena perilaku UNIX sedikit kontra-intuitif dalam kasus ini. Banyak orang cukup terkejut ketika mereka menandai file hanya-baca dan seseorang dapat menghapusnya. Anda hanya perlu izin tulis ke direktori yang berisi untuk menghapus file. rmmeminta Anda sebagai rasa hormat, jika Anda berharap itu hanya dibaca akan melindunginya.

Menggunakan -f(memaksa) akan membuatnya melakukannya tanpa mengganggu Anda. Tapi gunakan itu dengan hati-hati.

kurtm
sumber
hati-hati saat mengetik "rm -rf *", pikirkan.
ChuckCottrill
4
Seorang teman saya menyebut itu sebagai "Baca Email Cepat Nyata". :)
kurtm
0

Saya pikir Anda benar tentang hal itu karena meminta untuk tidak ditulis. Jika Anda menghapus file yang tidak bisa ditulisi, Anda sebenarnya menulis ke file itu. Jika Anda tidak ingin diminta, Anda selalu bisa membuat alias yang mengatakan rm sebenarnya rm -f.

Jeight
sumber
Saya pikir saya tidak mendapatkan jawaban Anda dengan benar. Saya bertanya-tanya mengapa rm mengeluarkan peringatan seperti itu di tempat pertama, mengapa hanya membaca file yang diperlakukan berbeda dari file yang dapat ditulis. Saya tahu kapan peringatan ini ditampilkan, saya bertanya-tanya mengapa.
user1042840
Karena jika Anda menetapkan sesuatu untuk dibaca saja itu tidak seharusnya diubah. Itu termasuk dihapus. Jika Anda melakukan root dan minta untuk menghapus file read only saja, maka ia ingin mengkonfirmasi bahwa Anda tidak membuat kesalahan. Itu menyebabkan Anda memikirkan kembali pilihan Anda.
Jeight
1
@Jeight Itu sebenarnya tidak benar. Anda tidak menulis ke file saat menghapus. Anda menulis ke direktori yang berisi.
kurtm
@kurtm Anda benar. Itu salah ketik, tapi alasan dasarnya sama.
Jeight