`उर्फ आरएम =“ आरएम-आई ”` हानिकारक माना जाता है?


17

मैंने कुछ समय पहले पढ़ा है (संदर्भ नहीं मिल सकता है) कि इस तरह के एक उपनाम का उपयोग करना alias rm="rm -i"बहुत बुरा था।

क्या उस तथ्य के लिए ऐतिहासिक प्रमाण या सामान्य ज्ञान की व्याख्या है?

मुझे लगता है कि यह एक उपयोगकर्ता को अपनी कमांड की जांच करने के लिए पुष्टिकरण पर भरोसा करने की एक बुरी आदत देता है, जिससे यदि वह अन्य प्रोफ़ाइल पर ऐसा नहीं करता है तो विपत्ति हो सकती है।



मुझे लगता है कि मैंने आपके द्वारा उल्लेखित विषय पाया।
डैनियल बेक

1
@ डैनियल वास्तव में इस सूत्र के सबसे उत्कट उत्तर में इस बुरे व्यवहार का उल्लेख है, लेकिन यह वास्तव में प्रश्न का केंद्रीय विषय नहीं है।
डुनरिल

जवाबों:


36

आप सही हे।

यह बुरा है क्योंकि आपको इसकी आदत है। यदि आप एक ऐसी प्रणाली पर हैं जिसके पास यह नहीं है, और आप rm, यह तुरंत हटाना शुरू कर देता है और आप सोच रहे हैं कि क्या हो रहा है।

कई उपयोगकर्ताओं को विभिन्न प्रणालियों में SSH'ing के लिए उपयोग किया जाता है; इसलिए कई अलग-अलग प्रणालियों का उपयोग करते हुए, कभी-कभी व्यक्तिगत उपयोगकर्ता खातों (उपनाम सहित) की स्थापना के बिना, बल्कि सामान्य है।

इसके बजाय, उदाहरण के alias rmi='rm -i'लिए उपयोग करें और उस एक का उपयोग करना सीखें। अगर वह अलग सिस्टम पर सेट नहीं है, तो आपने गलती से फाइलें डिलीट नहीं की हैं और हमेशा फुल कमांड टाइप करके वापस आ सकते हैं।


4

जैसे @ डैनियल ने कहा, यह अपने आप में हानिकारक नहीं है और प्रशिक्षण के अलावा आपको इसके होने की उम्मीद है। वास्तव में, यह सेंटोस पर डिफ़ॉल्ट सेट-अप है (और विस्तार आरएचईएल द्वारा, मुझे लगता है - जब से मैंने एक का उपयोग किया है) बहुत लंबा हो गया है, और यह ट्यूचस में एक बड़ा दर्द है । उस टमटम में मेरे बाकी समय के लिए, मैंने "लिनक्स के लिए उन लोगों से बचने के लिए / बिन / आरएम टाइप किया, जिनके पास रूट एक्सेस नहीं होना चाहिए" सेटअप।


3
आरएचईएल में यह डिफ़ॉल्ट रूप से होता है, आप सही कह रहे हैं, कम से कम मैंने जिन प्रणालियों का उपयोग किया है।
डैनियल बेक

4

मुझे लगता है कि बड़ा खतरा यह है कि लोग ग्लोब को फिल्टर करने के लिए इस तरह से भरोसा कर सकते हैं। कल्पना कीजिए कि आप एक निर्देशिका से कुछ छवियों को हटाना चाहते हैं, लेकिन उनमें से सभी नहीं:

rm -i pics/*.jpg

आप इसका उपयोग ग्लोब को मैन्युअल रूप से फ़िल्टर करने के लिए कर सकते हैं, जो पूरी तरह से उचित होगा। लेकिन, अगर आपने इसे rmअलियास किया था और उपयोग कर रहे थे और बिना उस उर्फ ​​के एक शेल में उतरने की कोशिश की और इसे आज़माया ... तो आपने अपनी सभी तस्वीरें हटा दीं, उफ़!

व्यक्तिगत रूप से मैं भी इस उपनाम को अपने रक्तचाप के लिए हानिकारक मानता हूं;)। लेकिन वह सिर्फ मैं हूं।


अच्छा उदाहरण है। बेशक अगर आपको खतरा, या जुआ पसंद है ..
Dunaril

2

डैनियल बेक ने जो कहा उसके अलावा, मैंने खुद -fको बाईपास का उपयोग करते हुए पाया -i, जो संभावित रूप से खतरनाक है क्योंकि इसका उपयोग rm -fऔर rm -rfअनावश्यक रूप से होता है। किसी तरह से संबंधित: rm -rfमुद्दों को रोकने का एक तरीका यह है कि इस प्रश्न के उत्तर में "-i" नामक फ़ाइल बनाई जाए, क्योंकि मैं आकस्मिक rm -rf / * को कैसे रोकूँ?

लेकिन फिर, अगर वह उर्फ ​​नहीं था, तो मैं -f का उपयोग नहीं करूंगा, और पूरी बात एक मुद्दा नहीं होगी।


3
लगता है कि आपने इस बुरे अभ्यास को और भी बदतर बनाने का एक तरीका पाया :)
डुनरिल

0

अतीत में सैकड़ों उपयोगकर्ताओं के साथ काम करने के मेरे अनुभव के आधार पर यह बहुत कम हानिकारक है:

rm ()  # must be a function, must require single answer for all targets
{
    ls -FCsd "$@"
    local reply ; echo -n 'remove[ny]? ' ; read reply
    if [ "_$reply" = "_y" ] ; then
        /bin/rm -rf "$@" ; else echo '(cancelled)'
    fi
}
  • यूजर्स को वाइल्डकार्ड्स का सही तरीके से इस्तेमाल करने के लिए प्रशिक्षित किया जाता है, न कि सिर्फ '*' और फिर फाइलों का चयन करने के लिए y / n प्रॉम्प्ट पर भरोसा करते हैं
  • सही वाइल्डकार्ड्स का उपयोग करने के लिए कंडीशनिंग अक्सर आपदा से बचाते थे जब वे rmकिसी अन्य संदर्भ में उपयोग करते थे जिसमें इस फ़ंक्शन या rm -iउपनाम की कमी थी ।
  • मैंने फ़ाइलों को पुनर्स्थापित करने में कम समय बिताया जहां उपयोगकर्ता ने कई बार 'y' टाइप किया
  • उपयोगकर्ताओं को केवल एक बार जवाब देना होगा - इसका उपयोग करने के लिए एक तेज सकारात्मक प्रतिक्रिया प्रदान करना
  • नियंत्रण-सी काम में बाधा डालता है और कुछ भी नहीं करने के रूप में रिपोर्ट करता है
  • स्क्रिप्ट नहीं है, इसलिए वास्तविक rmअछूता है, अन्य कार्यक्रमों को छोड़ नहीं सकता है।

कोड शैली ज्यादातर श-संगत ( echo .... | tr -d '\012'प्री-बैश शेल के लिए उपयोग को छोड़कर ) है, अपने स्वयं के अधिक बैश-विशिष्ट बनाने के लिए स्वतंत्र महसूस करें। मैं स्वयं कोड साझा करने के लिए पोस्ट नहीं कर रहा हूं, लेकिन उपयोगकर्ता अनुभव परिवर्तन को साझा करने के लिए जो इसके साथ आता है।


कामिल: मेरे उत्तर में rm -iऐतिहासिक रूप से (सैकड़ों उपयोगकर्ताओं के साथ मेरे अनुभव में) गलत फ़ाइल विलोपन के परिणाम शामिल हैं, और इस फ़ंक्शन में शामिल हैं कि उपयोगकर्ताओं को त्रुटि दर को कम करने के बजाय सही वाइल्डकार्ड का उपयोग करने के लिए प्रशिक्षित किया गया है। इसलिए मैंने प्रमुख मुद्दों को संबोधित किया है rm -i और सुविधा के लिए एक समाधान प्रदान किया है, और केवल तथ्य यह है कि बुलेट बिंदु फ़ंक्शन के नीचे हैं उन्हें जर्मेन होने से नहीं रोका जाता है।
एलेक्स नॉर्थ-कीज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.