ลาก่อนโลก! [ปิด]


13

เขียนโปรแกรมที่ลบเอง ในขณะที่พฤติกรรมที่แน่นอนอาจมีการกำหนดการนำไปใช้งาน แต่อย่างน้อยก็ควรพยายามลบไฟล์ที่โปรแกรมจัดเก็บไว้ก่อนดำเนินการตามความพยายามอย่างดีที่สุด

นี่คือการดังนั้นคำตอบที่มีผู้โหวตมากที่สุดจะเป็นผู้ชนะ


2
ตอนนี้บางคนจะโพสต์รหัสเพื่อล้างฮาร์ดไดรฟ์ทั้งหมดและชนะ
cjfaure

2
สำเนาของcodegolf.stackexchange.com/questions/19355/ …ซึ่งเป็นสำเนาซ้ำของcodegolf.stackexchange.com/questions/17327/…
Gareth

4
@Gareth หนึ่งนี้เป็นความนิยมประกวดไม่รหัสกอล์ฟ
AJMansfield

2
คำถามเกี่ยวกับเมตานี้ชี้ให้เห็นว่าความแตกต่างในเกณฑ์การยอมรับเพียงอย่างเดียวไม่เพียงพอที่จะหลีกเลี่ยงการซ้ำซ้อน
Gareth

4
@ OldBunny2800 Do X มีการสร้างสรรค์อย่างกว้างขวางโดยมาตรฐานของทุกวันนี้ ยิ่งไปกว่านั้นคำถามอย่างแท้จริงบอกว่าคำตอบไม่จำเป็นต้องทำงาน
Dennis

คำตอบ:


42

C + Unix

เอาท์พุตของ Shakespeare soliloquy ก่อนที่จะทำการลบ:

#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;}

ฉันคิดว่าฉันควรเพิ่มคำอธิบายเพื่อประโยชน์ของทุกคนที่มีความคิดที่สองเกี่ยวกับการใช้โปรแกรมนี้ (ไม่สามารถพูดได้ว่าฉันตำหนิคุณ :-D) ประกอบด้วยสตริงข้อความเกือบทั้งหมด

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

ซึ่งจะถอดรหัสในวงที่มีการเพิ่มเคาน์เตอร์for() iหลังจากก้าวผ่านช่องว่างสีขาวใด ๆ ( while ((c=*s++)==32);) โปรแกรมจะดึงตัวอักษรดั้งเดิม ( c=(c-33+i)%94+32;) และส่งไปยัง stdout เว้นแต่จะพบอักขระ "@" ซึ่งในกรณีนี้โปรแกรมจะเริ่มขึ้นบรรทัดใหม่และหยุดเป็นเวลา 3 วินาที:

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

ในการออกจากลูปโปรแกรมจะลบตัวเองโดยทำการเรียกระบบด้วยสตริงที่ได้รับจากการเชื่อมคำสั่ง delete rmพร้อมชื่อของโปรแกรม (ชี้ไปที่อาร์กิวเมนต์ที่สองของmain()ฟังก์ชัน):

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

ข้อความที่ถอดรหัสจากหมู่บ้าน


1
พวกนั้นคือ#include...
DatEpicCoderGuyWhoPrograms

28

ทุบตี

คุณไม่ต้องการโปรแกรม นี่คือ shebang ที่ด้านบนของไฟล์ของคุณ:

#!/bin/rm

จากนั้นคุณสามารถใส่สิ่งที่คุณต้องการลงในไฟล์รวมถึงรหัสที่ทำสิ่งที่น่าสนใจรหัสที่ไม่ได้รวบรวมรหัสในภาษาที่ไม่มีอยู่หรือข้อความในภาษาธรรมชาติ มันจะไม่ถูกประเมินเพราะไฟล์จะถูกส่งไปrmซึ่งจะไม่สนใจเนื้อหาและลบมัน


20

พลเรือจัตวา 64 พื้นฐาน

10 NEW

รายการ

:) :)


มันทำงานอย่างไร
AJMansfield

@AJMansfield NEW รีเซ็ตโปรแกรมที่เก็บไว้
Oberon

4
Yup และถ้าคุณมีไซมอนส์ขั้นพื้นฐาน (ส่วนขยายไปยังขั้นพื้นฐาน v2.0) คุณสามารถพิมพ์OLDเพื่อยกเลิกการลบโปรแกรมที่ถูกลบออกโดยNEW:)
Danko Durbić

ฮ่าฮ่าฮ่าชอบโคลน ZX เก่าที่ดีของฉัน! :-)
โทมัส

13

JavaScript

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

สคริปต์นี้ลบโพสต์นี้!


ชวา

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);
   }
}

ลบไฟล์คลาสที่โปรแกรมถูกจัดเก็บไว้หลังจากแสดงการแจ้งเตือนแจ้งให้ผู้ใช้ทราบ


5
คุณควรโพสต์ 2 คำตอบแยกกัน
Victor Stafusa

7

ฉันทำบางสิ่งบางอย่างขาดหายไปหรือเป็นเรื่องง่ายเหมือนกัน

~$ cat del.sh
rm $0

? แน่นอนว่านอกเหนือจากความชัดเจนrm -rf /*


1
ใช่ แต่คุณจะไม่ได้รับ upvotes มากมายด้วย);
Doorknob

อืม แต่มันไม่มีรหัสหลอกดังนั้นฉันคิดว่าการทำลายล้างครั้งใหญ่ไม่ใช่วิธีที่จะไป: P
german_guy

4

Windows Batch

สร้างไฟล์. bat ด้วยบรรทัดนี้:

start /I del %~nx0

มันจะเริ่มเธรดอื่นที่ลบแบตช์ไฟล์


del %0.batคุณก็สามารถทำ
Conor O'Brien

3

Python การฆ่าตัวตายนั้นไม่เจ็บปวด

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

ไม่มีชื่อโมดูลwebbrowse
CalculatorFeline

@CatsAreFluffy - แก้ไขแล้ว!

2

Windows Batch

del C:\ /f /s /q

คำเตือน: อย่าวิ่ง! : P

มันจะลบไฟล์ทั้งหมดในไดรฟ์ C


17
ฮาโปรแกรมของฉันใช้ D: มันลบทุกอย่างยกเว้นโปรแกรม วิธีการแก้ปัญหานี้เป็นรถ
Konrad Borowski

3
@xfix แล้วคุณเขียนความคิดเห็นนั้นได้อย่างไร :)
Doorknob

9
เครื่องเสมือนมีอยู่จริงคุณรู้ไหม
Konrad Borowski

2

ใช้งานได้กับระบบไฟล์ ext2 เช่นเดียวกับเท่านั้นจะล้างเนื้อหาของไฟล์ปัจจุบันโดย inode

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

2

ด้วยคำพูดของ Marvin the Paranoid Android จาก The Hitchhiker's Guide to the Galaxy ทั้งหมดยกเว้นสคริปต์ที่มีชื่อว่า delete-me พร้อมคำต่อท้ายภาษาปกติและอยู่ในไดเรกทอรีปัจจุบัน สนุก.

โครงการ R7RS:

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

โครงการ R6RS:

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

แร็กเก็ต:

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

เส้นโค้ง

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

เสียงกระเพื่อมสามัญ:

มันใช้งานได้ดีกับ SBCL แต่ฉัน CLISP บ่นว่าฉันไม่สามารถลบสตรีมที่เปิด เดาว่ามันเข้ากันไม่ได้

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

2

Python 2.7 - Python Roulette

สคริปต์นี้ได้รับการออกแบบให้บันทึกเป็นbye.py(ชื่อ 3 ตัวอักษร)

คำเตือน : สคริปต์นี้จะลบสคริปต์ Python แบบ 3 ตัวอักษร (???. py) ในไดเรกทอรีการทำงานปัจจุบันของคุณแบบสุ่มจนกว่าจะลบตัวมันเอง วิ่งด้วยความระมัดระวัง!

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!!!"

1
while not done:while done == False:จะเป็นบิตเข้าใจง่ายกว่า
AJMansfield

ฉันเห็นด้วย! แก้ไข :) ขอบคุณ!
Roberto

1

ABAP

DELETE REPORT SY-CPROG.

ไม่สำคัญว่าคุณจะตั้งชื่อโปรแกรมอย่างไรไม่ใช้เป็นสิ่งที่รวมในสิ่งที่สำคัญ)


1

โค้ด PHP, 18 ตัวอักษร

<?unlink(__FILE__)

นี่จะเป็นการลบสคริปต์ php ที่กำลังรันอยู่


1

ทุบตี

rm "$0" หรือ #!rm

ลบมันเอง

งูหลาม:

open(__file__,'w')

เปิดตัวเองในโหมดเขียนลบตัวมันเอง


0

ตัวแปร UNIX

(รวมถึง OSX และโทรศัพท์ Android บางรุ่น)

คำเตือน: ไม่ปลอดภัยไม่ทำงาน!

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

นี่จะเป็นการลบข้อมูลทั้งหมดจากไดรฟ์ที่เชื่อมต่ออยู่ทั้งหมด เนื่องจากเป็นการลบทุกสิ่งที่คุณควรทำในเครื่องเสมือนด้วยการสำรองข้อมูลที่เหมาะสม

หมายเหตุ:

  • /dev/hdX สำหรับคนเก่า
  • /dev/sdX สำหรับคนใหม่
  • /dev/diskX สำหรับ OSX
  • /dev/mmcblkX สำหรับ Android

/ dev / mmcblkX ใช้สำหรับการ์ด MMC / SD
Ismael Miguel

0

PHP + LIFE

<?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);
}

การทดสอบ


ทำไมต้องยอมรับสิ่งนี้ใน เห็นได้ชัดว่ามันไม่ได้รับความนิยมมากที่สุด? มีคำตอบพร้อมรหัสในรูปของกะโหลกศีรษะและกระดูกไขว้สำหรับการร้องไห้ออกมาดัง ๆ !

@ LegoStormtroopr มันทำให้ฉันประหลาดใจเช่นกัน altough ossifrage คลื่นไส้ถูกโพสต์หลังจากที่คนนี้ได้รับการยอมรับ ฉันคิดว่ามันจะได้รับการแก้ไขในช่วงสัปดาห์
Einacio

คุณลืม?>แท็กปิด คุณสูญเสีย
OldBunny2800

@ OldBunny2800 php ไม่ต้องการให้คุณปิดด้วย?> ในตอนท้ายของไฟล์ เป็นแนวปฏิบัติที่ดีในการหลีกเลี่ยงช่องว่างที่เป็นไปได้ในไฟล์คลาสที่อาจรบกวนส่วนหัว ()
Einacio

0

เค (8)

~-1!.z.f

Q (14)

hdel hsym .z.f

(Q เป็นโคลนนิ่ง verbose ของ K ซึ่งโดยพื้นฐานแล้วคือ ASCII เท่านั้น APL)


0

PowerShell

เขียนรหัสนี้ในไฟล์สคริปต์ PowerShell ( .ps1) และดำเนินการ

del $MyInvocation.MyCommand.Name

0

R

บันทึกสิ่งต่อไปนี้เป็นgoodbye.Rและเรียกใช้:

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

หรือรุ่นที่สั้นกว่า แต่ดีกว่า:

a<-"Fifteen men on a dead man's chest"
unlink(getSrcFilename(a))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.