Xkcd şakadaki bu özel “rm” dizisinin nedeni nedir?


14

İşte bu xkcd çizgi romanının bir parçası, burada yazarın bir sıralama programı yazamaması , böylece tüm dosyaları silmek için kod ekliyor

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

AFAIK, her şeyi silmenin standart yolu rm /, kökten başlayan her şeyin silinmesidir. İşte bu son komut ve bundan önceki iki komut rmgeçerli dizine ve giriş dizininin içeriğine çalışın .

Neden sadece rm /?

Yanıtlar:


19

En tepeden başlarsanız, rm(veya sistemin kritik bir kısmının) devam etmesi gereken bir şeyi silmeniz ve kötülüğün eksik kalması mümkündür.

Bu komutlar, en azından cwd ve kullanıcının ana dizininin çekirdeğe gitmeden önce gitmesini sağlar.


5
JFTR, rm belleğe yüklendiğinde, gerekli değişkenler kaldırılsa bile çalışmalı ve çalışmaya devam etmelidir. rm -rf /İnteraktif bir seanstan
koştuktan

8
Son rmkomutta son komutta başarısız olur rm: it is dangerous to operate recursively on ‘/’; bunun dışında rmbaşlatma işleminden sonra herhangi bir kaynağa erişim gerekmez. Birden çok komut kullanmanın bir nedeni, kullanıcının bu dizinlere farklı erişim izinlerine sahip olabilmesidir.
Stéphane Gimenez

@UlrichDangel, uzun zaman önce Solaris'in zor yolunu
öğrendim

1
Olacak. rm --no-preserve-root /Aslında bunun çalışması için kullanmanız gerekiyor
Max

1
"Bu komutlar, en azından cwd ve kullanıcının ana dizininin çekirdeğe gitmeden önce gitmesini sağlar." "/ Bin /" :) içindeyken bu komut dosyasını çalıştırırsak ne olur? Son iki komut hiç çalışmaz.
XzKto

8

Sadece artan yıkıcılık düzeylerini göstermek için: Geçerli dizini silin, sonra $HOMEnihayet hepsini yok edin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.