Mengapa alat menyukai cp
dan rm
memperlakukan direktori secara terpisah dari file biasa? Mereka berdua mengharuskan pengguna untuk secara eksplisit menentukan dia menginginkan perilaku rekursif, atau mereka tidak akan berurusan dengan direktori sama sekali.
Interaksi pertama saya (beberapa waktu lalu) dengan komputer adalah pada lingkungan Windows / GUI / point-and-click / drag-and-drop, selalu tampak wajar bahwa operasi ini akan berperilaku sama, terlepas dari target.
Perilaku ini khususnya membuat saya frustrasi ketika saya memberikan perintah dengan wildcard. Bagaimana jika saya ingin menghapus semua yang ada di direktori ( *
) kecuali untuk subdir yang tidak kosong ?
Saya hanya bisa membayangkan bahwa ini adalah semacam fitur keamanan untuk mencegah pengguna menembak dirinya sendiri, tetapi ini bertentangan dengan pemahaman saya tentang beberapa prinsip Unix:
- Unix biasanya tidak melindungi pengguna dari dirinya sendiri. Selalu diasumsikan pengguna tahu apa yang dia lakukan.
- Untuk Unix semuanya adalah file. Bukankah direktori hanyalah file lain? Mengapa mereka diperlakukan berbeda?
Pertanyaan saya:
- Apakah perilaku ini berasal dari keterbatasan teknis atau itu pilihan yang disengaja?
Dan dalam kasus yang terakhir,
- Adakah kisah historis tentang alasan yang memotivasi pilihan ini?
rm
setidaknya, jika Anda ingin mengabaikan perbedaan antara file dan direktori, Anda dapat menempatkan dalam Anda~/.bashrc
berkas:alias rm='rm -r'
.