मैं भयानक प्रोग्रामिंग गलतियों के बारे में एक थ्रेड पर ठोकर खाई और यह पाया:
https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cdbe0acce6f1dafc8beb84f2ac
जिसमें लाइन है:
rm -rf /foo-bar-usr /lib/nvidia-current/xorg/xorg
नोट – मैंने स्ट्रिंग में foo-bar- जोड़ा है ताकि यदि आप इसे चलाने का प्रयास करते हैं, तो यह वह चीज नहीं करेगा जिसके बारे में मैं चेतावनी दे रहा हूं –यहां तक कि मेरे क्लिपबोर्ड पर होने से मुझे घबराहट होती है!।
जब इसे चलाया जाता है तो क्या होता है? यह पूरे /usr/ डायरेक्टरी को मिटा देता है – अनिवार्य रूप से आपके कंप्यूटर को ब्रिक कर देता है! सिर्फ एक स्पेस की वजह से।
/usr के बाद स्पेस के कारण, rm कमांड इसे हटाने के लिए दो अलग-अलग डायरेक्टरी के रूप में व्याख्या करता है, न कि एक गलत टाइप पथ के रूप में।
यदि उस पथ को कोट्स में लपेटा गया होता ताकि इसे एक सिंगल पैरामीटर के रूप में पास किया जाता, तो ऐसा नहीं होता।
अधिकांश कमांड-लाइन उदाहरण ऐसा नहीं करेंगे क्योंकि यह स्क्रिप्ट के अर्थ को अस्पष्ट कर सकता है या इसे पढ़ना अधिक कठिन बना सकता है – लेकिन यदि आप कमांड लाइन पर सीधे स्टेटमेंट निष्पादित करने के बजाय स्क्रिप्ट लिख रहे हैं और विशेष रूप से यदि आप उपयोगकर्ता इनपुट स्वीकार कर रहे हैं जहां वे गलती से स्पेस टैप कर सकते हैं (कभी उपयोगकर्ताओं पर भरोसा न करें), तो एहतियात के तौर पर अपने फ़ाइल पथ को लपेटना उचित है।
आप डेटा खोना नहीं चाहते, और आप निश्चित रूप से किसी और का डेटा खोना नहीं चाहते।