Selamat tinggal Dunia! [Tutup]

13

Tulis program yang menghapus dirinya sendiri. Sementara perilaku yang tepat mungkin ditentukan oleh implementasi, itu harus pada upaya minimum untuk menghapus file program disimpan sebelum dieksekusi pada upaya terbaik.

Ini adalah , jadi jawaban dengan suara terbanyak akan menang.

AJMansfield
sumber
2
Sekarang, seseorang akan memposting kode untuk menghapus seluruh hard drive dan menang.
cjfaure
4
@ Gareth yang ini adalah kontes popularitas , bukan golf kode .
AJMansfield
2
Pertanyaan tentang meta ini menunjukkan bahwa menjadi berbeda dalam kriteria penerimaan saja tidak cukup untuk menghindari duplikat.
Gareth
4
@ OldBunny2800 Do X kreatif sudah luas dengan standar saat ini. Di atas semua itu, pertanyaan itu secara harfiah mengatakan bahwa jawaban itu bahkan tidak perlu bekerja.
Dennis

Jawaban:

42

C + Unix

Menghasilkan solitaquy Shakespeare sebelum menghapus dirinya sendiri:

#include <stdio.h>
#include <string.h>
#include <unistd.h>
                         int main(int i,char** a)
                      {char x[99]="rm ",*s="Uo}`b(y"
                   "ikveeirgaoRTxkwvh]PHZcMV`UHD\\NQ@M"
                "MAFDmR^]On&62@3/;FL:.7A00\"+#/:$(7,}y3!z~"
               "s.#{+}~nmkwDWjf~rjfjbmwYeZsUed`gbl\\RiY^\\YG"
             "LIRWT^EMOPPH>v&HSHBPE1:3K-=7<F(-&-155>~<0!z8(|5"
            "*'#(r{s\"8KKwl'h~$rrqorgkcy_g\\uj]Y`1o{zlA[iNRMqd"
           "poaVP^RJBAKdWcbTs\"BP>?A3fJ,8-F)?C%A5-%$.;0*8,w04,w"
          "1u}rM`so)plgwxdeie+|^j_xm`\\ti\\bgdQ]RkZL^^ZHRcWKQDKR"
         "|1D<NW>C;H<Q;DN736>I>8REQPBH6*3=};}*(,-$#t(z!}NQq#y~|s!"
         "%xr\"ce}ufoc!]&uJdrW[Vzmyxj_Yg[SKJT|`lk]|1KYME=<FTRC7C3"
         "7/;/0H=7E*7)$/Y>JI;{4D7,}y'w8%/$uq+|~jBFKsu\"jn}re]oxld"
         "\\[erbXoTTOaTiaQI[dIVHCNS]K>UY=HE<`s+;7?NF3K4,@.F:.:*).&"
         "$=-#\"9.!!*4\"#%&pz-ozsu4GSzww\"hiuc{qnxiYliZ.qfYUaSr_i^"
         "QMeXJWSGDT}2E=OXF9B;HR63=1<7AEI9/F:5C020(>+'#!TX]')4,z\""
         "0(}$xo*kmhx%xkg!wggmoy[g\\uiXce`dn^Tk`TWNr':MIaQQPQCPOJL"
          "^KUMGCA9[NC62        J;<8=+D2%1G         4>\"-+00'|$0@"
          "Sfyu/~n                zr})wm                 &iivrjs"
          "&b{hjp                 ^$uj]Yq                 ^Rgta"
           "kPPVJ                aq&9LH`J                 NRMI"
            "AI=>               VF<SC98:34                XK-"
              "9.G             </+C7373.2\\o              $z."
              "7(v           *|w!&/{r ~t~)wm&y           lh\""
              "vnvmo      pcswlXaZg}    2HXT\\kTP     hQQTYJPI`"
            "NIFFQZCCLVHK>9GGDN</81      i!2</D&B%#3%=~,~&#'U5-"
             "{#1)~%yp+~qmzk%jdtee        kq{^`[k$7JdrZdf^clNZ"
              "Oh\\_LGYbXPEEQ\\>Z         R?:JPTA=97[noCAJ?2"
                 "*<E  :-)A&3%~\"         ;+!8,'$y)     zz~"
                         "v.nr!o{(       kkfxk.!-"
                          ",|=Pc_wmeZ^gVagUasQjNY"
                           "^V[X^naHSOL\\TDJM>V9E"
    "JFAp}                 ?MB?-A/54,8C6(662-1G:FE                7(,0/"
  "~v%/$uq+#                rts2EEqf!m`iboyolviW               i\\XdoRTO_"
"j_RX[LdNPOU_WD                                            \\E=Q?w,?7CR9>JNC"
 "=K;?2.::D9,$6?7$<(*                                  *17&v+zz'0~tLL_r~{'"
           "itrvejemabz_i^                       kucV_XpT_fO_P^hX"
                  "Ne[XbDNMy}}K@           YNAMJTI<8P?1C7"
                        "C1I2>-E5+B5'4/+31%*(W_*4({"
                           "t{{wrp+y0my&|mwj!tgc"
                          "{l\\f^vZWhhqaWncV\\aR"
                   "R]#''SHaGOTDPMN     DM>KUE;R:D61CL="
             "5?-1F(4)B01.%-2G               Zp#-~5*{{&0#stm}n5("
   "{njmu\"duqpbjomwllhcrTi                     ciy..ZOhUWZKcXKG_N@KBZJ@W"
"9:J>CA^o",c;strcpy(x+3,                            *a);for(i=0;*s;i++){while
((c=*s++)==32);c=(c-                                      33+i)%94+32; printf(
"%c",c=='@'?(sleep(                                         3),'\n'):c);}printf
      ("\n");system                                            (x);sleep
       (6);return                                                c-c;}

Saya pikir saya sebaiknya menambahkan deskripsi untuk kepentingan siapa pun yang memiliki pemikiran kedua tentang menjalankan program ini (tidak bisa mengatakan saya menyalahkan Anda :-D). Hampir seluruhnya terdiri dari string teks tunggal

*s="Uo}`b(yikveeirgaoRT ... G_N@KBZJ@W9:J>CA^o"; /* 1459 bytes */

yang didekodekan dalam satu for()lingkaran dengan penghitung yang bertambah i. Setelah melangkah melewati spasi putih ( while ((c=*s++)==32);), program mengambil karakter asli ( c=(c-33+i)%94+32;) dan mengirimkannya ke stdout, kecuali jika bertemu dengan karakter "@", dalam hal ini memulai baris baru dan berhenti selama 3 detik:

printf("%c",c=='@'?(sleep(3),'\n'):c);

Saat keluar dari loop, program menghapus dirinya sendiri dengan membuat panggilan sistem dengan string yang diperoleh dengan menggabungkan perintah delete rmdengan nama program (ditunjukkan oleh argumen kedua ke main()fungsi):

int main(int i,char** a) {
  char x[99]="rm " ...
    :
  strcpy(x+3,*a);
    :
  system(x);

Teks yang diterjemahkan adalah dari Hamlet .

r3mainer
sumber
1
Mereka sialan #include...
DatEpicCoderGuyWhoPrograms
28

Pesta

Anda tidak perlu program. Hanya ini shebang di bagian atas file Anda:

#!/bin/rm

Kemudian Anda dapat meletakkan apa pun yang Anda inginkan dalam file, termasuk kode yang melakukan sesuatu yang menarik, kode yang tidak dikompilasi, kode dalam bahasa yang tidak ada, atau teks dalam bahasa alami. Itu tidak akan pernah dievaluasi karena file akan dikirim ke rm, yang hanya akan mengabaikan konten dan menghapusnya.

Martin Broadhurst
sumber
20

Commodore 64 BASIC

10 NEW

Daftar

:) :)

Danko Durbić
sumber
Bagaimana cara kerjanya?
AJMansfield
@AJMansfield BARU mengatur ulang program yang tersimpan.
Oberon
4
Yup, dan jika Anda memiliki BASIC Simons (ekstensi ke BASIC v2.0), Anda dapat mengetik OLDuntuk membatalkan penghapusan program yang telah dihapus oleh NEW:)
Danko Durbić
Ha ha ha seperti klon spektrum ZX lama saya yang bagus! :-)
Tomas
13

JavaScript

window.confirm = function() {return true;}; 
document.getElementById("delete-post-19739").click();

Script ini menghapus postingan ini!


Jawa

import java.io.File;
class Main{
   public static void main(String[] args){
       new File(Main.class.getResource("Main.class")).deleteOnExit();
       JOptionPane.showMessageDialog(null, "Goodbye, World!",
           "I can't even do anything useful, so I'll just delete myself!");
       System.exit(0);
   }
}

Menghapus file kelas tempat program disimpan, setelah menampilkan pemberitahuan yang memberi tahu pengguna.

AJMansfield
sumber
5
Anda harus memposting 2 jawaban terpisah.
Victor Stafusa
7

Apakah saya kehilangan sesuatu atau dapat sesederhana itu

~$ cat del.sh
rm $0

? Tentu terlepas dari yang sudah jelasrm -rf /*

german_guy
sumber
1
Ya, tetapi Anda tidak akan mendapatkan banyak upvotes dengan itu;)
Gagang Pintu
Hmmm, tapi tidak ada kode-trolling - jadi saya pikir penghancuran besar bukan cara untuk pergi: P
german_guy
4

Windows Batch

Buat file .bat dengan baris ini:

start /I del %~nx0

Ini akan memulai utas lain yang menghapus file batch

thepirat000
sumber
Anda selalu bisa melakukannya del %0.bat.
Conor O'Brien
3

Python - Bunuh Diri itu Tidak Menyakiti

import webbrowser,os
webbrowser.open('http://goo.gl/JDJNjU')
os.remove(__file__)

sumber
Tidak ada modul bernamawebbrowse
CalculatorFeline
@CatsAreFluffy - Diperbaiki!
2

Windows Batch

del C:\ /f /s /q

PERINGATAN: jangan lari! : P

Menghapus semua file pada drive C.

Gagang pintu
sumber
17
Ha, program saya ada di D :. Itu menghapus segalanya kecuali program. Solusi ini bermasalah.
Konrad Borowski
3
@xfix Lalu bagaimana Anda menulis komentar itu? :)
Gagang Pintu
9
Mesin virtual memang ada, Anda tahu.
Konrad Borowski
2

hanya bekerja pada sistem file seperti ext2, akan menghapus isi file saat ini dengan inode

#!/bin/bash
D=`stat -c '%d' $0`                                         
M=$(($D/256))
debugfs -wR clri `stat -c '<%i>' $0` /dev/block/$M:$(($D-$M*256))
Robokop
sumber
2

Dengan Marvin the Paranoid Android mengutip dari The Hitchhiker's Guide to the Galaxy. Semua kecuali skrip yang akan dinamai delete-me dengan akhiran bahasa yang biasa dan skrip itu berada di direktori saat ini. Nikmati.

Skema R7RS:

#!r7rs
(import (scheme))
(display "Marvin: I'm just trying to die.\n")
(delete-file "delete-me.scm")

Skema R6RS:

#!r6rs
(import (rnrs))
(display "Marvin: "Life. Don't talk to me about life.\n")
(delete-file "delete-me.scm")

Raket:

#!racket
(display "Marvin: I have a million ideas. They all point to certain death.\n")
(delete-file "delete-me.rkt")

Busur

(prn "I think you ought to know I'm feeling very depressed.\n")
(rmfile "delete-me.arc")

Gangguan Umum:

Ini berfungsi dengan baik dengan SBCL, tetapi saya CLISP mengeluh bahwa saya tidak dapat menghapus aliran terbuka. Kira ini tidak terlalu kompatibel.

(format t "Marvin: I ache, therefore I am.~%")
(delete-file "delete-me.cl")
Sylwester
sumber
2

Python 2.7 - Python Roulette

Skrip ini dirancang untuk disimpan sebagai bye.py(nama 3 huruf).

PERINGATAN : Skrip ini akan secara acak menghapus skrip Python nama 3-huruf (???. Py) di direktori kerja Anda saat ini, hingga terhapus dengan sendirinya. Jalankan dengan hati-hati!

import string, sys, os, random
directory = os.getcwd()
done = False
while not done:
    name = ''
    for i in range(3):
        name += string.ascii_lowercase[random.randrange(0, len(string.ascii_uppercase))]
    fullname = directory + '\\' + name + '.py'
    print "Trying to remove:", fullname, "...",
    try:
        os.remove(fullname)
    except:
        print "No harm done!"
    else:
        "Oops!!"
    try:
        a = open(sys.argv[0], "r")
        a.close()
    except:
        done = True
        print "Booom!!!"
Roberto
sumber
1
while not done:akan sedikit lebih mudah dimengerti daripada while done == False:.
AJMansfield
Saya setuju! Diedit :) Terima kasih!
Roberto
1

ABAP

DELETE REPORT SY-CPROG.

Tidak masalah bagaimana Anda menamai program tersebut, jangan gunakan sebagai bagian dari sesuatu yang penting;)

Konijn
sumber
1

PHP CODE, 18 karakter

<?unlink(__FILE__)

Ini menghapus skrip php yang sedang berjalan.

Ismael Miguel
sumber
1

Pesta

rm "$0" atau #!rm

Hapus sendiri.

Python:

open(__file__,'w')

Buka sendiri dalam mode tulis, hapus sendiri

Tidak Ada Di Sini
sumber
0

Varian UNIX

(termasuk OSX dan beberapa ponsel Android)

Peringatan: tidak aman, jangan lari!

$  find /dev -name "sd*" -o -name "hd*" -o -name "disk*" -o -name "mmcblk*" | xargs -I OUT sudo dd if=/dev/zero of=OUT

Ini akan menghapus semua data dari semua drive yang terhubung. Karena ini menghapus semua yang Anda hanya harus mencoba ini di mesin virtual dengan cadangan yang tepat

Catatan:

  • /dev/hdX adalah untuk kesatuan lama
  • /dev/sdX untuk yang baru
  • /dev/diskX adalah untuk OSX
  • /dev/mmcblkX adalah untuk Android
SztupY
sumber
/ dev / mmcblkX digunakan untuk kartu MMC / SD
Ismael Miguel
0

PHP + HIDUP

<?php

$individual;
$days = 0;

Class Person{
    protected $happiness;

    function __construct(){
        $this->happiness = mt_rand(0,100);
    }

    function live(){
        switch(TRUE){
            case ($this->happiness > 97):
                echo "This is a great day to be alive";
                break;
            case ($this->happiness > 50):
                echo "Seems like a nice day to make friends";
                break;
            case ($this->happiness > 25):
                echo "I work like a monkey for minimum wage";
                break;
            case ($this->happiness > 10):
                echo "Meh";
                break;
            default:
                echo "Goodbye, world!";
                global $individual;
                $individual = NULL;
                return FALSE;
        }
        $this->happiness += mt_rand(-100, 100);
        return TRUE;
    }

    function __destruct(){
        unlink(__FILE__);
    }
}

$individual = new Person();
while($individual->live()){
    $days++;
    sleep(1);
}

diuji

Einacio
sumber
Mengapa menerima ini? Jelas bukan yang paling populer? Ada jawaban dengan kode dalam bentuk tengkorak dan tulang bersilang untuk menangis dengan suara keras!
@LegoStormtroopr mengejutkan saya juga, meskipun ossifrage mual diposting setelah yang satu ini diterima. saya akan berpikir itu akan diperbaiki selama seminggu
Einacio
Anda lupa ?>tag penutup . KAMU KALAH
OldBunny2800
@ OldBunny2800 php tidak mengharuskan Anda tutup?> Di akhir file. Ini bahkan merupakan praktik yang baik untuk menghindari spasi kosong pada file kelas yang dapat mengganggu header ()
Einacio
0

K (8)

~-1!.z.f

Q (14)

hdel hsym .z.f

(Q adalah klon K yang lebih verbose, yang pada dasarnya adalah ASCII-only APL)

skeevey
sumber
0

PowerShell

Tulis kode ini dalam file skrip PowerShell ( .ps1) dan jalankan.

del $MyInvocation.MyCommand.Name
mikrobia
sumber
0

R

Simpan yang berikut ini goodbye.Rdan jalankan:

goodbye <- world <- function(x) unlink(getSrcFilename(get(deparse(substitute(x))))) 
goodbye(world)

Atau versi yang lebih pendek tetapi kurang bagus:

a<-"Fifteen men on a dead man's chest"
unlink(getSrcFilename(a))
lebatsnok
sumber