Apa alasan untuk urutan "rm" spesifik ini dalam lelucon xkcd?

14

Inilah bagian dari strip komik xkcd ini di mana idenya adalah bahwa penulis tidak dapat menulis program pengurutan sehingga ia menambahkan kode untuk menghapus semua file

system("rm -rf ./");
system("rm -rf ~/*");
system("rm -rf /");

AFAIK cara kanonik untuk menghapus semuanya adalah rm /agar semua yang dimulai dari root dihapus. Di sini ini adalah perintah terakhir dan dua perintah sebelumnya yang mencoba ke rmdirektori saat ini dan isi dari direktori home.

Kenapa tidak adil rm /?

sharptooth
sumber

Jawaban:

19

Jika Anda mulai dari bagian paling atas, ada kemungkinan bahwa Anda akan menghapus sesuatu yang rm(atau bagian penting lain dari sistem) perlu dilanjutkan, dan kejahatan akan dibiarkan tidak lengkap.

Perintah-perintah ini akan memastikan bahwa setidaknya cwd dan direktori home pengguna hilang sebelum menjadi nuklir.

Flup
sumber
5
JFTR sebagai rm dimuat dalam memor itu harus bekerja dan tetap bekerja bahkan jika variabel yang diperlukan dihapus. Setelah Anda lari rm -rf /dari sesi interaktif, shell Anda akan tetap bekerja
Ulrich Dangel
8
Terbaru rmakan gagal pada perintah terakhir dengan rm: it is dangerous to operate recursively on ‘/’; selain itu rmtidak memerlukan akses ke sumber daya apa pun setelah inisialisasi. Alasan untuk menggunakan beberapa perintah mungkin karena pengguna mungkin memiliki izin akses yang berbeda ke direktori tersebut.
Stéphane Gimenez
@UlrichDangel, saya menemukan jalan yang sulit di Solaris sejak lama ...
vonbrand
1
Itu akan. Anda benar-benar perlu menggunakan rm --no-preserve-root /ini untuk benar-benar berfungsi
Max
1
"Perintah-perintah ini akan memastikan bahwa setidaknya cwd dan direktori home pengguna hilang sebelum menjadi nuklir." Bagaimana jika kita menjalankan skrip itu ketika kita berada di "/ bin /" :)? Dua perintah terakhir tidak akan berjalan sama sekali.
XzKto
8

Hanya untuk menunjukkan tingkat kerusakan yang meningkat: Hapus direktori saat ini, lalu $HOME, akhirnya hancurkan semua.

vonbrand
sumber