কোড যা কেবল একবার কার্যকর করা হবে


223

লক্ষ্য

এই চ্যালেঞ্জের লক্ষ্য হ'ল কোড লেখা যা একবার এবং একবারে একবার কার্যকর হবে। এর অর্থ মূলত এটি কোনওভাবে প্রোগ্রাম, স্ক্রিপ্ট বা পরিবেশের ক্ষতি করে। সিস্টেমটি রিবুট করা হলে কোডটি আবার চালানোর অনুমতি দেয় যা অনুমোদিত।

স্কোরিং

ভোটের সংখ্যা। সমস্ত অনুমান অবশ্যই স্পষ্টভাবে তালিকাভুক্ত করা উচিত। কেবলমাত্র একটি রিবুট বা থামানো যে কোনও উত্তর অযোগ্য ঘোষণা করা হবে।

অতিরিক্ত নিয়ম কারণ গ্রেগ হিউগিল একটি আধ্যাত্মিক দেবতা

কোনও রুট অ্যাক্সেসের অনুমতি নেই।

শেষ তারিখ

প্রতিযোগিতাটি 31 মে, 2014 এ শেষ হবে।

সম্পাদন করা

এই প্রতিযোগিতাটি জনপ্রিয়তার প্রতিযোগিতায় পরিবর্তিত হয়েছে।


7
@ পিটারটেলর একটি সম্ভাব্য সমাধান হ'ল স্ব-মুছে ফেলা হবে তবে ফলাফলটি দেখায় যে এটি কেবলমাত্র একটি নয়।
লুচি

101
viএকক টার্মিনাল পরিবেশে ডাকা প্রচুর লোকের এই প্রভাব রয়েছে, আপনি রিবুট না করা থেকে এড়ানোর কোনও উপায় নেই :) এখানে কেবল একটি রসিকতা।
ওরিওন

6
আপনার কাছে এই জাতীয় কোনও প্রশ্নের প্রস্তাব দেওয়ার জন্য সাইটটি বিনামূল্যে।
ojblass

16
echo "If you try to execute me again, it means you are an idiot.";<- কেউ একাধিকবার মৃত্যুদন্ড কার্যকর করবে না: পি
ইউজার 3459110

25
ক্ষেপণাস্ত্র সম্পর্কিত সফটওয়্যার কি যোগ্যতা অর্জন করবে? ;)
rsegal

উত্তর:


518

জাগরণ

অবশেষে ভিজিলের জন্য একটি ইউসকেস!

def main():
  raise Exception()

"ভাষার নির্দিষ্টকরণ" থেকে উদ্ধৃত:

এটি বলার অপেক্ষা রাখে না যে কোনও ক্রিয়াকলাপ যে ব্যতিক্রম ছুঁড়েছে তা ছুঁড়েছে তা ভুল এবং তাকে অবশ্যই শাস্তি পেতে হবে।

...

যদি কোনও শপথ ভঙ্গ হয়ে যায়, আপত্তিজনক কাজটি [...] যথাযথভাবে শাস্তি প্রাপ্ত হবে।

কিভাবে?

সাধারণ: এটি আপনার উত্স কোড থেকে মুছে ফেলা হবে।

আপনার প্রোগ্রামটি নিশ্চিত করার একমাত্র উপায় এটি করতে ব্যর্থ কোডটি একেবারে নিষিদ্ধ করার জন্য তার প্রয়োজনীয়তাগুলি পূরণ করে। ভিজিলের সাথে, এটি আপনার জন্য স্বয়ংক্রিয়ভাবে এটি করবে

এটি করার অন্যান্য উপায় রয়েছে, কারণ ভিজিল কীওয়ার্ডগুলি সরবরাহ করে imploreএবং swearযা মূলত কিছু প্রাক-শর্তাবলীর পরে এবং শর্ত অনুসরণ করতে শপথ করে:

def main():
  swear 0 > 1

116
সন্দেহ নেই, এটি জয়ের যোগ্য
মাত্তেও ইটালিয়া

77
অবশেষে, আধুনিক যুগের জন্য যথেষ্ট সচেতন ভাষা! আমি এটি উত্পাদন ব্যবহার শুরু করব। সমস্ত বাগ মুছে ফেলতে হবে।
ক্লাদিউ

13
আমার কাছে মনে হয় এটি অগত্যা ফাংশনটির দোষ নয় যা একটি অপ্রকাশিত ব্যতিক্রম ছুঁড়ে ফেলেছে, এটি এমনও হতে পারে যে কল স্ট্যাকের কার্যগুলি এটি ধরতে ব্যর্থ হওয়ার জন্য অবহেলা করছে। এটি এমনকি পুরো অ্যাপ্লিকেশনটির আর্কিটেকচারটি ত্রুটিযুক্ত হতে পারে (কারণ সম্ভবত কোডটি পুনর্গঠন না করে সেই ব্যতিক্রমটি সঠিকভাবে পরিচালনা করার কোনও উপায় নেই?) সংক্ষেপে, পুরো প্রোগ্রামটি মুছে ফেলা উচিত।
জোনাথন পুলানানো

10
@ জোনাথনপল্লানো আপনি যে নজরে আসছেন তা প্রথম নন ;)
মার্টিন এন্ডার

32
শপথের অতিরিক্ত পয়েন্ট। একটি প্রোগ্রাম একটি আত্মবিশ্বাসী মিথ্যা বিবৃতি দেয় নিঃসন্দেহে নির্মূল করা প্রয়োজন।
প্রাচ্য

293

খুব সুন্দর কোনও লিনাক্স ডিস্ট্রো, 9 টি অক্ষর

এই এক ক্লাসিক!

#!/bin/rm

এটি একটি ফাইলে রাখুন এবং এটি চালান:

> ed
a
#!/bin/rm
.
wq foo
> ls
Mail mbox foo
> chmod 777 foo
> ./foo
> ls
Mail mbox

এন্ড চলে গেল!

যা চলছে তা: আমি আসলেই চলছে rm! #!তাকে শেবাং বলা হয় । এবং যদি আপনি এর মধ্যে একটির পরে আপনার স্ক্রিপ্টের প্রথম লাইন হিসাবে কিছু এক্সিকিউটেবলের পথে রাখেন, প্রোগ্রাম লোডার আপনার স্ক্রিপ্ট ফাইলটি সেখানে যা লিখেছেন তার সাথে চালিত করবে - ডিফল্টটি সাধারণত #!/bin/bashবা #!/bin/sh(বোর্ন-পুনরায় শেল / বোর্ন শেল) হয় । প্রথম আর্গুমেন্ট এই স্ক্রিপ্টের প্রেরণ ফাইলের নাম নিজেই হতে হবে (যা আপনি সহ অনেক সমাধান কেন %0বা $0এবং এখানে লাইক); সুতরাং আমার ফাইলটি তৈরি করে এবং #!/bin/rmএটি চালিয়ে, আমি যা করছি তা হ'ল আমার ফাইলটির ফাইলের নামটি পাস করা rm


9
লিনাক্সটি নিজে ব্যবহার না করেই আমি মনে করি এটি স্ক্রিপ্ট ফাইলটি মুছে ফেলে।
ousurous

56
@ নাটকেরখফস #!ক্রমটি একটি শেবাং শুরু করে, যা আপনাকে সাধারণত স্ক্রিপ্টের জন্য কোন দোভাষী ব্যবহার করতে চলেছেন তা চিহ্নিত করে /bin/bash। এখানে, ফ্লোনক /bin/rmএকটি "দোভাষী" হিসাবে ব্যবহার করেছেন । rmএমন একটি প্রোগ্রাম যা ফাইলগুলি মুছে দেয়। কারণ লিনাক্স মনে করে যে আমরা rmদোভাষী হতে চাই , এটি ফাইলের নামটিকে এটির পক্ষে যুক্তি হিসাবে পাস করে। অতএব, ফাইলটি নিজেকে মুছে ফেলে

19
এটি হিস্টিরিয়াল
ওজব্লাস

25
@ user80551 এর জন্য আমার রুট অ্যাক্সেসের দরকার নেই।
ফ্লোন্ক

9
হুম ..../foo mbox
ইজকাটা

241

x86 বাইনারি, 4 বাইট

F0 0F C7 C8

অনুমান: অবশ্যই একটি P5 পেন্টিয়াম সিপিইউতে চালানো উচিত।

উপরের নির্দেশটি সাধারণত F00F বাগ হিসাবে পরিচিত । এটি একটি অবৈধ নির্দেশ কার্যকর করার চেষ্টা করে, লক সহ উপসর্গযুক্ত

এটি সিপিইউ পুরোপুরি হিমায়িত করে (কোনও থামা বা রিবুট নয়) এবং এটিতে রুট অ্যাক্সেসের প্রয়োজনও হয় না।


4
বাহ ... এটা সত্যিই আকর্ষণীয়।
ojblass

31
@ জ্যাকএম: এটি হবে, তবে প্রশ্নে এটি স্পষ্টভাবে অনুমোদিত।
ডেনিস

34
@ জ্যাকএম, "স্ক্রিপ্ট" চালানো থেকে বিরত করার জন্য এটি দুর্দান্ত উপায় বলে মনে হচ্ছে।
পল ড্রাগন

5
আমার মনে আছে কখন এই বাগটি রাউন্ডগুলি তৈরি করছিল। একটি তাত্ক্ষণিকভাবে একটি কার্নেলসাইড ওয়ার্কারআউন্ডটি পাওয়া গেছে - আপনি প্যাচ ছাড়াই কোনও ওএস চালা না করে কম্পিউটারটি ক্র্যাশ করবে না।
zwol

3
স্পষ্টতই, রসলুপি 209 বিভিন্ন ব্যবহারকারী আপনি যদি একমত না হন, ডাউনভোট হন এবং এগিয়ে যান।
ডেনিস

150

বাশ, ৫

>"$0"

নিজেকে শূন্য দৈর্ঘ্যে ছাঁটাই করে দেয়।

যদি ফাইলনামে স্পেস না থাকে তবে 3 টি অক্ষরের>$0 জন্য কাজ করে !


2
প্রকৃতপক্ষে, শেল পার্সিং বিধিগুলির ক্ষেত্রে বিশেষ ক্ষেত্রে, প্রোগ্রাম বা পথের মধ্যে শূন্যস্থান থাকা সত্ত্বেও, এই জাতীয় পুনর্নির্দেশের ফাইল নাম হিসাবে ব্যবহৃত চলকগুলির জন্য কোটগুলির কখনই প্রয়োজন হয় না। সুতরাং আপনি সর্বদা 3 টি অক্ষরে এটি করতে পারেন!
apenwarr

3
@ স্পেনওয়ার এটিতে "$ 0: দ্ব্যর্থহীন পুনর্নির্দেশ" বলেছে যখন কোনও

1
@ স্পেনওয়ার, এটির প্রয়োজন যদি সেই শেলটি যে স্ক্রিপ্টটির ব্যাখ্যা দেয় ksh88 এর উপর ভিত্তি করে বা পশিক মোডে ব্যাশ না থাকে। এটি স্পেস সম্পর্কে নয়, এটি $IFSব্যাশ এবং কেএস 88 এর জন্য বশ এবং ওয়াইল্ডকার্ড চরিত্রের কোনও চরিত্র সম্পর্কে । শি-ব্যাং কম স্ক্রিপ্টটি সাধারণত সিস্টেমের শি দ্বারা ব্যাখ্যা করা যায় তবে বাশ এবং কেএস 88 সহ কয়েকটি শেল তাদের পরিবর্তে নিজের সন্তানের মধ্যে ব্যাখ্যা করে।
sch

144

gzip,

#!/bin/gzip

gzipননডস্ট্রস্ট্রাকটিভ কমান্ডলাইন সরঞ্জামগুলিতে ব্যবহৃত লোকেদের খুব বিরক্ত করার জন্য, ডিফল্টরূপে মূল ফাইলটি একটি জিপিড সংস্করণ (একটি প্রত্যয় যুক্ত) দিয়ে প্রতিস্থাপন করে নষ্ট করে দেয়।

এটি #!/bin/rmবিকল্পটিতে একটি ভিন্নতা , ব্যতীত এটি ম্যানুয়াল মানবিক হস্তক্ষেপের দ্বারা পুনরুদ্ধারযোগ্য ( gunzipএটির জন্য কল করুন)। একটি বিশেষ বোনাস হিসাবে, ফলস্বরূপ ফাইলটি মূলের তুলনায় অনেক বেশি দীর্ঘ (পার্থক্য ফাইলের দৈর্ঘ্যের উপর নির্ভর করে)।

সতর্কতা: অবস্থান gzipপৃথক হতে পারে।

সম্পাদনা: ডাব্লুচারগিন দ্বারা নির্দেশিত হিসাবে, এটি আরও বহনযোগ্য:

#!/usr/bin/env gzip

ফাইলের বাকী যে কোনও বিষয়বস্তু থাকতে পারে। এটি মূলত এমন একটি ফাইল যা বলা হয়ে থাকে তখন নিজেকে একটি বাক্সে লুকিয়ে রাখে এবং জোর করে আনপ্যাক না করা পর্যন্ত বাইরে আসতে অস্বীকার করে।


7
আমি এর আগে কখনও ভাবিনি তবে আপনি একেবারে সঠিক।
ojblass

খুব আকর্ষণীয়
গ্রিজেশ চৌহান

11
"সতর্কতা: এর অবস্থানের gzipপরিবর্তিত হতে পারে" - এটি কোড-গল্ফ নয় , তাই আপনি ব্যবহার করতে পারেন#!/usr/bin/env gzip
wchargin

37
It's essentially a file that, when called, hides itself in a box and refuses to come out until you forcibly unpack it.আপনি আমার দিনটির জন্য +1 করেছেন, এবং সকাল 1 টা।
তালি দাও

এটি মূলত এমন একটি ফাইল যা বলা হয়ে থাকে তখন নিজেকে একটি বাক্সে লুকিয়ে রাখে এবং জোর করে আনপ্যাক না করা পর্যন্ত বাইরে আসতে অস্বীকার করে। আমাকে হেসে ফেলল : ডি
মিশা

121

বাশ, 13 12

সংক্ষিপ্ততম নয়, তবে এটি আসলে ফাইলটি মুছবে না বা সিস্টেমকে ব্যবহারযোগ্য করে তুলবে না।

chmod 0 "$0"

যদি ফাইলনামে স্পেস না থাকে তবে আপনি 2 টি অক্ষর সংরক্ষণের জন্য উদ্ধৃতিগুলি সরাতে পারেন।

ব্যাখ্যা

এটি rwxনিজের থেকে সমস্ত অনুমতি ( ) সরিয়ে দেয়। আপনি যখন এটি চালানোর চেষ্টা করেন, বা এমনকি কোডটি দ্বিতীয়বার দেখার অনুমতিটি ম্যানুয়ালি পুনরুদ্ধার না করে করেন, তখন এটি এমন কিছু বলবে

bash: <FILENAME>: Permission denied

এর সাথে অনুমতিগুলি পুনরুদ্ধার করুন

chmod +rwx <FILENAME>

পুরাতন রুপ

কেবল সম্পাদনকারী অনুমতিগুলি সরিয়ে দেয়, তবে আরও একটি চর ( এটি পরিবর্তিত হওয়ার আগে একটি প্রশ্ন ছিল ):

chmod -x "$0"

লুকাস নিমিমার দ্বারা লুক্কায়িত সংস্করণ

#!/bin/chmod 0

4
chmod 0খুব কাজ করে
gnibbler

@gnibbler thnx যোগ হয়েছে

আমি মনে করি আপনি প্রোগ্রামটি কল করতে পারেন aএবং 3 টি অক্ষর সংরক্ষণ করতে পারেন :chmod 0 a
yo '

@ তোহেজ যা মূলত প্রতারণা করছে

5
এমনকি সুন্দর#!/bin/chmod 0
হাউলেথ

112

6800 মেশিন কোড - 1 বাইট

0xDD

এটি এইচসিএফ বা হাল্ট অ্যান্ড ক্যাচ ফায়ার নামে পরিচিত


78
ঠিক আছে, বিধিগুলি বলছে "কেবল একটি রিবুট বা থামার সূচনা করা যে কোনও উত্তর অযোগ্য ঘোষণা করা হবে", তবে এটি কেবল একটি থামানো শুরু করে না , কারণ এটি আগুনও ধরে। এইভাবে, +1!
ট্রেজকাজ

94

শেল + সেড, 16 বাইট

অন্যান্য উত্তরগুলির মতো বেশ ধ্বংসাত্মক নয় ;-)

এই স্ক্রিপ্টটি #নিজের প্রতিটি লাইনের শুরুতে একটি মন্তব্য serোকায় :

sed -i s/^/#/ $0

3
কীভাবে sed -i g $0?
শৈশুমারা

91

কমোডোর 64 বেসিক

এটি প্রোগ্রামটি মুছে না।

1 POKE 2048,1

নিজে থেকেই নষ্ট

মতে কমোডর 64 মেমরির মানচিত্র , ঠিকানা 2048অব্যবহৃত, কিন্তু এটি একটি মান থাকা আবশ্যক 0, যাতে বেসিক প্রোগ্রাম চালানো যেতে পারে।


1
পোকে কি কেবল কোনও স্থানে ভেরিয়েবল সরিয়ে নেওয়া যায়?
ojblass

12
হ্যাঁ, কার্যকরভাবে। poke a, bসি কোডের সমতুল্য *((unsigned char *)a) = b;
জুলাই

4
আমি আমার ফেসবুকের দিকে তাকিয়ে দেখতে চাই!
সানি আর গুপ্ত

3
ওহ বাহ ... আমি সি 64 বেসিক থেকে শিখা এবং পোকে মনে আছে! আমি 1977 চারপাশের এই জিনিস লিখছিলাম
Fixee

পার্শ্ব দ্রষ্টব্য: 0কোড লাইনগুলির শেষ চিহ্নিত করতে একটি বাইট ব্যবহার করা হয়; সুতরাং 0x800 ঠিকানার সম্ভবত প্রথম কোড লাইনের শুরু চিহ্নিত করার জন্য একটির প্রয়োজন।
তিতাস

89

অনুমান: চলমান সোলারিস, মূল হিসাবে লগ ইন করা হয়েছে

killall

3
সোলারিসের আসলেই কি এমন জিনিস আছে?
ojblass

21
হ্যাঁ, এটি টিনে যা বলে তা ঠিক তাই করে এবং চলমান সমস্ত প্রক্রিয়া মেরে ফেলে
গ্রেগ হিউগিল

আপনার জন্য একটি upvote!
ojblass

9
1, প্রশ্নটিতে কোনও রুট অ্যাক্সেসের অনুমতি নেই বলে উল্লেখ করা হয়েছে।
ব্যবহারকারী 80551

119
@ ব্যবহারকারী 80551 তিনি এই নিয়মের কারণ।
সিয়েরিয়া

68

পাইথন, 18

open(__file__,'w')

কেবলমাত্র লেখার মোডে ফাইলটি খোলার মাধ্যমে এটি কেটে ফেলা হয়।


14
আপনি যদি গুরুতর হন তবে এটি নিজেই খোলে ( __file__তার নিজস্ব ফাইলের নাম বোঝায়)। wমোডে খোলার ফলে ফাইলটি ছাঁটাই হয়, মূলত এটি পরিষ্কার হয়।
বব

7
আমি মনে করি খোলা জায়গায় কাটা কাটা ঘটায়, তবে পাইথন রানটাইমটি নির্বিশেষে প্রোগ্রামের শেষে সমস্ত খোলা ফাইলগুলি ফ্লাশ করা উচিত এবং প্রক্রিয়াটি শেষ হওয়ার পরে পাইথন বা ওএস উভয়ই সেগুলি বন্ধ করে দেবে। 'অবশ্যই, আপনি যখন তাদের সাথে কাজ শেষ করেন তখন স্পষ্টভাবে খোলা হ্যান্ডলগুলি বন্ধ করা ভাল অনুশীলন।
বব

5
পাইথনে ফাইল হ্যান্ডেল করার "ডান" উপায়টি ... এর সাথে রয়েছে। with open("myfile.txt","r") as thefile:এবং তারপরে আপনার ফাইল-হ্যান্ডলিং কোডটি কাজ শেষ হয়ে গেলে স্বয়ংক্রিয়ভাবে ফাইলটি বন্ধ হয়ে যাবে।
শিলকোট

1
এটি এমন কিছু সংক্ষিপ্ত করা যেতে পারে open("f.py","w")
ইথান বিয়ারলাইন

1
.Pc অবশেষে কাজ করা বন্ধ করে দেয় না
minmaxavg

66

ব্যাচ: 5 বাইট

%0|%0

এটি মূলত উইন্ডোজের জন্য কাঁটাচামচ।

অ্যাপ্লিকেশনটি তার প্রথম যুক্তিটি দু'বার শুরু করে। এটি উত্পাদনশীল পরিবেশে চালাবেন না;)


83
একটি উত্পাদনশীল উইন্ডোজ পরিবেশ আছে? (আমি অবশ্যই মজা করছি)
ওরিওন

17
দেখতে এত নির্দোষ!
ojblass

15
ঠিক আছে, অবশ্যই চেষ্টা করবেন না। এটা ভাল যায় নি।
rmobis

75
ডাউনটাতে জনপদটি পাবেন না, তবে এটি সবচেয়ে গুরুতরভাবে "একবারে রান" লঙ্ঘন করে।
Xan

14
আমি বিশ্বাস করি কোনও মানুষ কেবল একবার এটি কার্যকর করে এবং এটি যোগ্যতা অর্জন করে।
ওজব্লাস

54

জাভাস্ক্রিপ্ট

localStorage.x = eval(localStorage.x + localStorage.x)

প্রথমবার যখন আপনি এটি চালান, এটি ঠিকঠাক চলবে:

>>> localStorage.x = eval(localStorage.x + localStorage.x)
NaN

আপনি যদি এটিকে আরও চালানোর চেষ্টা করেন (এমনকি রিফ্রেশ করেও), আপনি একটি ত্রুটি পাবেন:

>>> localStorage.x = eval(localStorage.x + localStorage.x)
ReferenceError: NaNNaN is not defined

5
সুতরাং আপনি যদি এটি অনেক বার চালনা করেন তবে আপনি ব্যাটম্যান থিম পান। তার জন্য +1।
হানক্রেকর্ডস

2
@ হ্যাঙ্কক্রেকর্ডস দুঃখের বিষয়, সত্যই নয়, যেহেতু এটি পরে কার্যকর করা হবে না ...
রেডক্লুভার

@ সোয়াকু বামার ...
হানক্রেকর্ডস

@ হ্যাঙ্কক্রেকর্ডস আপনি অপসারণ না করা পর্যন্ত eval, কিন্তু তারপরে এটি এই চ্যালেঞ্জটি পূরণ করবে না
রেডক্লুভার

46

আইবিএমের সিএমএস অপারেটিং সিস্টেম, যা একক ব্যবহারকারী অপারেটিং সিস্টেম যা আইবিএম এর ভিএম হাইপারভাইজারের অধীনে অতিথি হিসাবে চলে, একটি আকর্ষণীয় ফাইল-কাঠামো রয়েছে।

ফাইলগুলিতে তিনটি উপাদান থাকে, ফাইলের নাম, ফাইলের ধরণ এবং ফাইল মোড। ফাইল মোডে দুটি উপাদান রয়েছে, একটি একক বর্ণমালা, যা ব্যাখ্যা করার জন্য সহজেই উইন্ডোজ / এমএস-ডস-এর ড্রাইভ লেটার এবং একটি একক সংখ্যাসূচক হিসাবে বিবেচিত হতে পারে।

একক সংখ্যার অঙ্কের অর্থ, http://publib.boulder.ibm.com/infocenter/zvm/v5r4/index.jsp?topic=/com.ibm.zvm.v54.dmsa3/hcsd0b10127.htm এবং এই কাজের জন্য এটি 3 নম্বর যা আকর্ষণীয়:

ফাইল মোড নম্বর 3
ফাইল মোড নম্বর 3 এর অর্থ ফাইলগুলি পড়ার পরে মুছে ফেলা হয়। আপনি যদি নিজের মিনিডিস্কে বা আপনার এসএফএস ডিরেক্টরিতে অনুলিপিগুলি বজায় রাখতে না চান তবে আপনি ফাইল মোড নম্বর 3 ব্যবহার করতে পারেন।

সুতরাং, আপনার স্ক্রিপ্টটি লেখার জন্য কয়েক ঘন্টা ব্যয় করুন এবং এটিকে 'লস্ট ফরেভার এ 3' হিসাবে ফাইল করুন। এটি চালান, এটি প্রথমবার কাজ করে। বাড়ি রওনা দিলাম, কাজ ভাল হয়েছে।

দ্রষ্টব্য, মুছে ফেলা নির্দেশ করে কোনও বার্তা উত্পন্ন হয় না। সর্বোপরি, সবাই জানেন যে এর 3অর্থ কী, তাই না?

এটি অবশ্যই খুব দরকারী। আপনি একবার পরীক্ষা শেষ হয়ে গেলে 3অস্থায়ী ফাইলগুলির জন্য ব্যবহার করতে পারেন , এবং পরে পরিষ্কার করতে হবে না, কারণ সেগুলি ফাইলগুলি একবারে পঠনযোগ্য।


44

কমোডোর 64 বেসিক

0 NEW

NEW প্রোগ্রাম মুছে দেয়।



3
@ ব্যবহারকারী973810 যদি আমি বেসিক মনে করি তবে মেমরি পরিষ্কার করার জন্য নতুন, তাই এটি প্রোগ্রামটি মুছে
ফেলবে

3
খুশী হলাম। কমোডোর
to৪

আপনি ওল্ড বা ও। ​​ফিরে আসতে পারে। আমি 12 বছরের পুরানো গেমের কোডিং জিনিয়াসের 12 মাস নতুন করব; একবার দুর্ঘটনাক্রমে কাজ করি। তারপরে দুর্ঘটনাক্রমে পুরানো-আইংয়ের পরিবর্তে সংরক্ষণ করা হয়েছে। ও। আর কাজ করেন নি :( আমি হেক্স সম্পাদকরা কীভাবে বেশ তীক্ষ্ণ কাজ করেছিলেন তা শিখলাম :)
ম্যাট ওয়ারেন

3
@ এসএপ: এটি লাইন নম্বর হিসাবে 1 ব্যবহার করা থাকলে এটি আরও বহনযোগ্য হবে; সমস্ত বেসিক বাস্তবায়ন লাইন নম্বর 0 সমর্থন করে না
সেলটস্ক

41

বাশ, 12

দ্রষ্টব্য: এটি ধ্বংসাত্মক।

:(){ :|:&};:

এটি জনপ্রিয় বাশ কাঁটাচামচ-বোমা। এটি তাত্পর্যপূর্ণভাবে সমস্ত স্মৃতি খায় এবং পিআইডি'র সিস্টেমটি লকআপ করে। একটি হার্ড-রিবুট কোডটি আবার চালানোর অনুমতি দেবে যদিও আপনি এটি করতে চান কেন?


বাশ, 10

:(){ :&};:

দুটি কম চর জন্য, এটি আপনার স্মৃতি রৈখিকভাবে খাওয়া।


বাশ,।

w;PATH=

w আমি ভাবতে পারি যে সংক্ষিপ্ততম এক্সিকিউটেবল হিসাবে নির্বাচিত হয়।

এটি কেবল পাথের পরিবর্তনশীলটিকে মুছে দেয় যাতে শেলটি /usr/bin/wপরের বার খুঁজে পাবে না । শেলটি পুনরায় আরম্ভ করার ফলে পাথটি সাধারণত সংরক্ষণ করা হয়~/.profile



1
:(){ :&};:আপনার স্মৃতি খাওয়া উচিত নয়। এটি কাঁটাছুটি করার সাথে সাথেই থেমে যায়, তাই কেবল কখনও O(1)সক্রিয় থাকে। আপনি করেছেন while(fork());, আপনার স্মৃতি রৈখিকভাবে কি খাওয়া হবে তার সমতুল্য fork(); while(1);
মেরিনাস

26
কি দারুন! এগুলি হ'ল কিছু মারাত্মক আবেগ! আমি আমার কম্পিউটারকে বিন্যোজ্জ্বল ফ্রাউনফেসে কল করতে পারি না :(){ ....
লেভেল রিভার সেন্ট

1
যদি আমি সঠিকভাবে মনে রাখি ... কাঁটাচামচ বোমা সময়ে সময়ে একটি পিআইডি খোলা রাখে। স্ক্রিপ্টটি সেই ব্যবধানে আবার চালানো যেতে পারে ... এবং যদি এটি গণনা না করে তবে কিছু চেষ্টা করে সমস্ত কাঁটাচামচ মেরে ফেলা সম্ভব। রিবুট করা সহজতম সমাধান।
ব্রিলিয়ান্ড

11
আমি মনে করি না এটি যোগ্যতা অর্জন করে। স্ক্রিপ্টটি আবার চালানো অসম্ভব করে না, পরিবর্তে এটি গ্যারান্টি দেয় যে এটি আবার চালিত হয় (বহুবার)।
বেন ভয়েগ্ট

20

সি শার্প

স্ব মোছার জন্য সবচেয়ে সংক্ষিপ্ত কোড

Process.Start(new ProcessStartInfo("cmd.exe", "/C choice /C Y /N /D Y /T 3 & Del \"" + Assembly.GetExecutingAssembly().Location + "\""));

এটি ইউআইতে অদৃশ্যযোগ্য করার জন্য কোড

Process.Start( new ProcessStartInfo()
{
    Arguments = "/C choice /C Y /N /D Y /T 3 & Del \"" + Assembly.GetExecutingAssembly().Location+"\"",
    WindowStyle = ProcessWindowStyle.Hidden, CreateNoWindow = true, FileName = "cmd.exe"
});

7
শেষ অবধি, একটি সি উত্তর!
ফারাপ

কেন পছন্দ প্রয়োজন?
wizzwizz4

19

সি ++ 71

এক্সিকিউটেবল ফাইল "গল্ফ" পরের বার চালানোর অনুমতি অস্বীকৃত।

#include <stdlib.h>
int main()
{
system("chmod a-x golf");
return 0;
}

কনসোল পরীক্ষার সাথে জাভাস্ক্রিপ্ট / এইচটিএমএল 137, 145

<script id="s"> 
function h(){
console.log(1);
var s=document.getElementById("s");
h=s.innerHTML;
h=h.replace("h","g");
s.innerHTML=h;
}

11
@ জাভাস্ক্রিপ্টের প্রসঙ্গে টেম্পলার, আমি মনে করি যে পৃষ্ঠাটি রিফ্রেশ করা রিবুট হিসাবে গণ্য হবে (সম্ভবত?)

2
এমনকি আপনি পৃষ্ঠাটি থেকে স্ক্রিপ্টটি অপসারণ না করলেও এটি কেবল একবার কার্যকর করা হবে। এটির কোনও মানে নেই।
nderscore

2
@ অ্যান্ডস্কোর দেখে মনে হচ্ছে যে ফাংশনটি h কেবল একবার কার্যকর করা হবে। আপনি আসলে এটি অন্য কোথাও থেকে কল করতে হবে (একটি প্রোগ্রাম চালানোর জন্য সমতুল্য, আমার ধারণা)। বলুন <button onclick="h();">,।
বব

4
প্রদত্ত পৃষ্ঠাটি পুনরায় লোড করার অনুমতি দেওয়া হয়েছে এবং এটির লক্ষ্যটি হ'ল এটি ইতিমধ্যে লোড হওয়ার সময় একাধিকবার এক্সিকিউটেবল হতে আটকাবে, এতে কী সমস্যা function h(){h=0}?
আগ্রহী

1
সঙ্গে #include <sys/stat.h>আপনি অ্যাক্সেস করতে পারেন chmod, সরাসরি ফাংশন বেশ কিছু বাইট সংরক্ষণ ( <stdlib.h>আর প্রয়োজন হয়, এবং তন্ন তন্ন হয় system)। এছাড়াও, কোন returnপ্রয়োজন হয় না।
বেন ভয়েগট

19

আমার নামের শেল ... পাওয়ারশেল

ক্লাসিক স্ব ধ্বংসাত্মক বার্তা:

@'
##################################
Project X is a go

Meet Eagle 1 at WP Alpha

Further comms is hereby prohibited
##################################
This message will self destruct in 
5 seconds
'@
5..1| %{$_;Sleep 1;}
"Goodbye"
rm $(.{$MyInvocation.ScriptName})

ব্যাখ্যা, দয়া করে?
noɥʇʎԀʎzɐɹƆ

@ noɥʇʎԀʎzɐɹƆ লাইনগুলি 13 অবধি কেবল বোকা। এর পরে, অন্য কোনও শেলের মতো, পাওয়ারশেল চলমান স্ক্রিপ্টটিকে মেমরিতে লোড করে এবং এটির জন্য এখন আর আসল স্ক্রিপ্ট ফাইলের প্রয়োজন হয় না ... সুতরাং এটি নিজেকে মুছে ফেলে।
স্যামশাইনঅজেক্ট

18

বাশ (5)

rm $0

ধরে নিচ্ছি ফাইলের নামের মধ্যে আপনার ফাঁকা স্থান নেই।


40
এই কারণেই উইন্ডোজের চেয়ে ইউনিক্স ভাল: ডেল এর পরিবর্তে আরএম আপনাকে একটি বাইট সংরক্ষণ করেছে।
ম্যাডটাক্স

1
@ ম্যাডটাক্স আমি ইউনিক্সে * নিক্সকে পছন্দ করি।
wizzwizz4

14

SH

#!/bin/sh
curl http://runonce.herokuapp.com/

কেবল একবার চালানো হবে (এবং এটি "হ্যালো, ওয়ার্ল্ড! এটি চালিত হলে" দেখায়), এমনকি আপনি যদি সিস্টেমটি পুনরায় ইনস্টল করেন এবং স্ক্রিপ্টটি আবার রেখে দেন।


সম্পাদনা: আমি অনুভব করেছি যে আমি রানুর পিছনেও একটি স্ক্রিপ্ট প্রকাশ করব। বিশেষ কিছু নয়, কারণ এটি কোনওভাবেই মুক্তি পাওয়ার কথা ছিল না, যাই হোক না কেন।

<?php
$db = pg_connect("[connection information]");
$ip = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];

pg_query("DELETE FROM users WHERE time < now() - interval '1 day'");

$result = pg_query_params($db, "SELECT * FROM users WHERE ip = $1 LIMIT 1", array($ip));

if (!pg_fetch_row($result)) {
    echo "Hello, world!\n";
    pg_query_params($db, "INSERT INTO users (ip) VALUES ($1)", array($ip));
}

পাশাপাশি ডাটাবেস স্কিমা

CREATE TABLE users (
    ip inet PRIMARY KEY,
    time timestamp with time zone NOT NULL DEFAULT now()
);
CREATE INDEX ON users (time);

ডেটা হেরোকুর ডাটাবেসে সংরক্ষিত আছে, যদি আপনি চান তবে তাদের গোপনীয়তা নীতিটি নির্দ্বিধায় চেক করুন । আমি কোনও ডাটাবেসে সঞ্চিত ডেটা পরীক্ষা করি না, কোডটি একবার চালানোর অনুমতি দেওয়ার জন্য এটি খাঁটিভাবে সঞ্চিত হয়।


4
আমি যুক্তি দেব যে এটি একাধিকবার চলবে, এটি প্রথমটির পরে কোনও আউটপুট তৈরি করে না।
ব্রিলিয়ান্ড

5
এটি একবারও আমার জন্য "হ্যালো ওয়ার্ল্ড" দেখায় নি।
পাওলো ইবারম্যান

1
@ স্টাফেনগৌরিচন: হ্যাঁ, এটি আইপি স্মরণ করে এবং স্বয়ংক্রিয়ভাবে অপসারণের আগে কোনও আইপি সরানোর কোনও উপায় নেই। আমি উত্স কোডটি রাখার সিদ্ধান্ত নিয়েছি, যাতে এটি কী করে তা আপনি পরীক্ষা করতে পারেন।
কনরাড বোরোস্কি

1
@ স্টাফেনগৌরিচন: pg_query_paramsএসকিউএল ইঞ্জেকশন থেকে প্রায়শই রক্ষা করে। তবে এটি সংরক্ষণ করা হবে না, যেমনটি '; DROP TABLE users;--কোনও বৈধ আইপি নয় ( inetকেবলমাত্র আইপি গ্রহণ করে) এবং তাই আপনার যদি কোনও নকল X-Forwarded-Forশিরোনাম থাকে তবে আপনার দর্শনটি সংরক্ষণ করা হবে না। আমি নিজেই এটিকে কোনও সমস্যা মনে করি না।
কনরাড বোরোস্কি

2
আমি বিশ্বাস করি যে এটি একটি স্ট্যান্ডার্ড লুফোলের লঙ্ঘন: আসল উত্তরের আউটসোর্সিং
জুনিয়ররুবিস্ট

12

পিএইচপি, 22 20 টি চর

<?=unlink(__FILE__);

সম্পাদনা: প্রতিটি মন্তব্য শেষে দুটি অক্ষর সরানো হয়েছে।


2
এটিকে আরও সরলীকরণ করা যেতে পারে: <?unlink(__FILE__);অনুসরণ করার ?>প্রয়োজন নেই
লিপোয়ারা

আপনাকে দিয়ে শুরু করতে হবে <?=বা শুরু ট্যাগটি স্বীকৃত নয়।
মাইকেল মায়ার

2
পিএইচপি নিজেকে ধ্বংস করছে ... হা! E_NOTICE লাইন 3048
মেটাডিংস

<?+ স্থানও ঠিক আছে। আপনি সংক্ষিপ্ত ট্যাগের পরে কোনও চিঠি ব্যবহার করতে পারবেন না।
তিতাস

11

রুবি, 14

এটি প্রোগ্রামের নাম হিসাবে সোর্স কোডটিকে আবার লিখে দেয়।

IO.write $0,$0

3
এবং যদি প্রোগ্রামটির নাম "IO.writer $ 0, $ 0" হয়? "অনুমান: প্রোগ্রামটির এমন নামকরণ করুন যা কোনও ভাষায় বৈধ কোড নয়" "
ব্রিলিয়ান্ড

@ ব্রিল্যান্ড একটি রুবি প্রোগ্রামটি সর্বদা শেষ হওয়া উচিত .rbএবং এমনকি যদি এর নাম "IO.writ $ 0, # 0 # .rb" ছিল তবে এটি কার্যকর হবে না কারণ এটি লেখার সময় পুরো পথটি অন্তর্ভুক্ত থাকবে।
এমএমএইচএম

3
@ এমএইচএমডি একটি রুবি প্রোগ্রাম যে কোনও কিছু দিয়ে শেষ হতে পারে। উদাহরণস্বরূপ gemএবং irbকোনও রুটবিহীন রুবি প্রোগ্রামগুলি।
bfontaine

@ বিফোঁটেইনে যা শিবাং আছে এটা হয় না।
wizzwizz4

@ wizzwizz4 শেবাংগুলির সম্প্রসারণের সাথে কোনও সম্পর্ক নেই। ruby fooএবং ruby foo.rbশেবাংয়ের সাথে বা ছাড়া একই কাজ করবে। ./fooএবং ./foo.rb(তারা নির্বাহযোগ্য বলে ধরে নিই) উভয়টি শেবাং ছাড়াই ব্যর্থ হবে এবং এটির সাথে সফল হবে (সঠিক কোড অনুমান করে)।
bfontaine

10

ব্যাচ (characters টি অক্ষর)

এটি ধরে নেওয়া হচ্ছে যে ফাইলটি মুছে ফেলার জন্য আমাদের কাছে অনুমতি আছে এবং অবশ্যই উইন্ডোজে করা যেতে পারে (সম্ভবত এমএস-ডসও)।

del %0

10

বাশ 9 8 টি অক্ষর

nc -l 1&

কেবল একবার চলবে, কারণ বন্দরটি চিরতরে অবরুদ্ধ।


1
আমি মনে করি এটি কার্যকর হয় না, কারণ 0এটি একটি বিশেষ বন্দর (এটি সংরক্ষিত)। আমি যখন এটি আমার কম্পিউটারে চালনা করি তখন আমি এটি একাধিকবার খুলতে পারি। এছাড়াও, এটি একটি বন্দর < 1024, যার অর্থ এটি শোনার জন্য রুট অ্যাক্সেস প্রয়োজন।
heinrich5991

nc -l 1&সমস্যাটি সমাধান করবে 0এবং এক বাইট আরও কম হবে, যেহেতু শেষ স্থানটির প্রয়োজন নেই।
ক্যাস্পারড

@ ক্যাস্পারড ইনপুটটির জন্য ধন্যবাদ :-)
ফালকো

@ হেনরিচ ৫৯৯১ ঠিক আছে - 9654 এর মতো একটি বন্দর ব্যবহার করতে আমার রুট অ্যাক্সেস ছাড়াই 11 টি অক্ষরের প্রয়োজন হবে
ফালকো

কেন আপনি নিম্নচাপ?
ফ্যালকো

9

নোডজেএস - 33 বাইট

require('fs').unlink(__filename);

যারা ভাষার সাথে অপরিচিত তাদের জন্য এটি কী করে আপনি বর্ণনা করতে পারেন?
কাইল কানোজ 30'14

1
@ কাইলি ক্যানোস এটি ফাইল সিস্টেম মডিউল fsএবং বর্তমান ফাইলের __filenameনাম পায় এবং ফাইল সিস্টেম থেকে সেই ফাইলের নামটি সরিয়ে দেয়।
আগ্রহী

7
আপনি সেমিকোলনটি এলিড করতে পারেন কারণ এটি জাভাস্ক্রিপ্টে .চ্ছিক।
nlply

8

ব্যাচ, 7 টি চর

এটি চেষ্টা করার আগে সংরক্ষিত কাজ সংরক্ষণ করুন।

হয় 64৪-বিট সিস্টেম, বা <২ জিবি র‌্যাম মেমরির একটি 32-বিট সিস্টেম ধরে নেওয়া হয়। আরম্ভের আগে অবশ্যই একটি .bat বা .Cmd ফাইলে সংরক্ষণ করতে হবে, কেবল এটি cmd.exe এ প্রবেশ করা কার্যকর হবে না।

^ nul<^

এটি একটি সম্পূর্ণ সিপিইউ কোর গ্রহণ করে এবং প্রতি সেকেন্ডে কয়েকশ মেগাবাইটের হারে আপনার র্যাম মেমরিটি পূরণ করে। যদি আপনি এটি সময়মতো বন্ধ না করেন (টাস্ক ম্যানেজার), এটি আপনার কম্পিউটারে র‌্যামের প্রতিটি বাইট গ্রাস করবে, আপনার পুরো সিস্টেমটি হিমশীতল হয়ে যাবে এবং কাটার মাধ্যমে আপনার কম্পিউটারকে জোর করে বন্ধ করে পুনরায় চালু করার আগে আপনি কিছুই করতে পারবেন না cutting পাওয়ার বা পাওয়ার বোতামটি চেপে ধরে রাখা।

সমস্ত ক্রেডিট স্ট্যাকওভারফ্লোতে txtechhelp এ যায়, এখানে আরও তথ্য দেখুন: https://stackoverflow.com/q/23284131/1955334


এটি কীভাবে সম্ভব হবে? পেজিং সম্পর্কে কী? প্রক্রিয়া অগ্রাধিকার?
নিকোলাস বারবুলেসকো

আমি এই স্ক্রিপ্টটি চালিয়েছি, কিছুই হয়নি।
পাভেল

@ পাভেল আমি অনুমান করেছিলাম এটি তখন উইন্ডোজ 10 এ স্থির হয়েছে। আমি এটি উইন্ডোজ 10 এ পুনরুত্পাদন করতে পারি না তবে এটি উইন্ডোজ 8.1 এ কাজ করে।
বিল্ড 2910

1
"এটি একটি সম্পূর্ণ সিপিইউ কোর ব্যবহার করে এবং প্রতি সেকেন্ডে কয়েকশ মেগাবাইটের হারে আপনার র্যাম মেমরিটি পূরণ করে time জমে যাবে এবং আপনি বিদ্যুৎ কেটে বা পাওয়ার বোতামটি ধরে রাখার মাধ্যমে আপনার কম্পিউটারটিকে জোর করে বন্ধ এবং পুনরায় চালু করার আগে আপনি কিছুই করতে পারবেন না। " কম্পিউটারগুলির জন্য হরর গল্পের মতো শোনাচ্ছে ...
noɥʇʎԀʎzɐɹƆ

7

এখানে একটি দম্পতি। অনেকের বিপরীতে, এগুলি ধ্বংসাত্মক নয়, কেবল সৃজনশীল এবং অপ্রচলিত।

সজোরে আঘাত

#!/usr/bin/env bash
read <<< ''
printf "$REPLY" > "$0"

এটি একটি খুব সহজ। পরিবর্তনশীল $REPLYসুস্পষ্টভাবে তৈরি করা হয়েছে read, তবে একটি খালি এখানে স্ট্রিং দিয়ে ভরাট। সেই ফাঁকা স্ট্রিংটি printfবর্তমান স্ক্রিপ্টটিতে সম্পাদিত হবে। এটি নিম্নলিখিতগুলির তুলনায় বরং অস্পষ্ট সমতুল্য:

#!/usr/bin/env bash
cat <<< '' > "$0" # probably a lot more portable

উইন্ডোজ ব্যাচ

copy con %0 < nul

দ্বিতীয়টি মূলত nulবর্তমান ফাইলটিতে কনসোল ইনপুট অনুলিপি করে পড়ে from


এটি জনপ্রিয়তার প্রতিযোগিতায় পরিণত হওয়ার পরে পোস্ট করা হয়েছে
ইসিয়ায়া মেডো

1
প্রথমটি রুটের অনুমতি ব্যতীত কাজ করবে না। আপনি নাল ডিভাইসটি কেন প্রতিস্থাপনের চেষ্টা করছেন? যখন রুট হিসাবে চালানো হয়, এটি সিস্টেমটিকে প্রকৃতপক্ষে আচরণ করতে সহায়তা করবে। আপনি এটিকে লেখার সময় নালকেও ওভাররাইট করছেন :) কেন এটি অন্য কোথাও সরিয়ে নেওয়া হচ্ছে না? যেমন এমভি "$ 0" "$ {0} x" বা কিছু? এটা কৌতুক করা উচিৎ।
প্রাচ্য

ফাইলটির পরে কি এখনও বিদ্যমান?
ইসিয়া মিডোস 30'14

আমি এখন সম্পূর্ণরূপে বাশ উদাহরণটি পরিবর্তন করেছি।
ইসিয়া মিডোস

কীভাবে এগুলি ধ্বংসাত্মক নয়?
ysap

7

সিনক্লেয়ার বেসিক

10 POKE 23635,255

বেসিক প্রোগ্রামের ঠিকানাটি স্মৃতিতে দূরে সরিয়ে দেয় যেখানে এটি হওয়া উচিত (203) যাতে দোভাষী দ্বারা ভুল ডেটা পাওয়া যায়।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.