क्या सिर्फ 'rm -rf' किसी भी फाइल को डिलीट करता है?


16

मैं हाल ही में भाग गया rm -rf, नहीं rm -rf /, लेकिन कुछ भी नहीं हुआ। मुझे बस एक परिणाम मिलता है:

टर्मिनल

मैं डर गया था क्योंकि मुझे चिंता है कि यह कुछ फ़ाइलों को हटा सकता है, लेकिन यह नहीं था। बस यकीन है, यह मेरी निर्देशिका से किसी भी फाइल को नष्ट कर सकता है?


36
यदि आप निश्चित नहीं हैं (कुछ 100%) तो कमांड न चलाएं।
सौर माइक

5
कभी भी ऐसे कमांड न लिखें जिन्हें आप नहीं समझते हैं। आप सभी की जरूरत थी एक या / और आप बहुत सारी चीजें हटा रहे हैं।
नेल्सन

18
यदि आप संभावित खतरनाक आदेशों के साथ प्रयोग करना चाहते हैं, तो वर्चुअल मशीन स्थापित करने पर विचार करें।
संगीतज्ञ ५२३

6
आप जो चाहें वह प्रयोग करें (जब तक आपका डेटा सुरक्षित रूप से बैकअप नहीं हो जाता)। यह केवल सॉफ्टवेयर है और कुछ भी गलत होने पर आप इसे फिर से इंस्टॉल कर सकते हैं। किसी को भी आपको कंप्यूटर से डरने की ट्रेनिंग न दें।
हॉब

3
यदि आप निश्चित रूप से 100% नहीं हैं तो एक कमांड चलाएं। सीखने के लिए केवल बहुत सारे तरीके हैं, और वास्तव में उन्हें चलाना उनमें से एक है। कैवेट एम्प्टर और बैकअप, जाहिर है, और VMs और वह सब का उपयोग करें। लेकिन डर के मारे कुछ भी नहीं चलाने से आपको बढ़ने में मदद नहीं मिलेगी। अतिरिक्त सावधानी (यानी rm) होने पर यह स्पष्ट होना चाहिए , लेकिन कई / अधिकांश अन्य आदेशों के लिए, जैसे सभी पाइप-आधारित पाठ हेरफेर कमांड, बस उन्हें अक्सर कोशिश करना सबसे आसान / सरलतम है जो आप कर सकते हैं। साथ में मैन पेज का अध्ययन, स्पष्ट रूप से।
एनओई

जवाबों:


49

नहीं, rm -rfआप किसी भी फाइल को नहीं हटाएंगे क्योंकि आपने कमांड को एक तर्क नहीं दिया है।


5
और इसकी वजह से -f, इसे चलाने के लिए कोई त्रुटि नहीं है। rm -r"लापता ऑपरेंड" के बारे में शिकायत करेंगे, लेकिन इसे -fदबा देते हैं, और उन फ़ाइलों के लिए त्रुटियों को भी दबा देते हैं जो मौजूद नहीं हैं। (इसलिए उदाहरण के लिए एक स्क्रिप्ट rm -rf /foo/bar/*एक निर्देशिका को खाली करने के लिए उपयोग कर सकती है जो पहले से ही खाली हो सकती है, बिना 2>/dev/nullस्क्वैश त्रुटियों के।)
पीटर कॉर्ड्स

34

से मैन्युअल पृष्ठ :

rm प्रत्येक निर्दिष्ट फ़ाइल को निकालता है।

इसका मतलब है कि आप इसका उपयोग एक ही बार में फ़ाइलों की सूची निकालने के लिए कर सकते हैं, जैसे कि

rm -rf test1.txt test2.txt

सौभाग्य से, आपने जो कुछ भी किया था , वह फाइलों की एक खाली सूची को पारित कर रहा था , इसलिए इसने कुछ भी नहीं हटाया। इसके अलावा, @SolarMike क्या कहता है : यदि आप नहीं जानते कि एक कमांड क्या करता है, तो इसे न चलाएं । macOS को अंतिम उपयोगकर्ता से सभी खतरनाक (लेकिन संभावित रूप से शक्तिशाली) यूनिक्स संचालन को 'छिपाने' के लिए डिज़ाइन किया गया है।


7
-rजब तक आप निर्देशिकाओं को पुनरावर्ती रूप से नहीं हटा रहे हों, तब तक FYI ध्वज अनावश्यक है। अगर यह सिर्फ फाइलें है, rmपर्याप्त है - -fबल के लिए है कि यह आपको हर फ़ाइल के लिए "क्या आप सुनिश्चित हैं" नहीं पूछती है।
टिम एस।

9
इसके अलावा, जब आप गलत तरीके से इसका उपयोग करते हैं तो -f उपयोग संदेश को प्रदर्शित नहीं करता है। यही कारण है कि ओपी के चलने पर कोई आउटपुट नहीं था rm -rf। यदि वे निर्दिष्ट फ़ाइलों / निर्देशिकाओं के बिना 'आरएम-आर' चलाते हैं, तो उन्हें यह उपयोग संदेश मिल जाएगा: JanNash ~ $ usage: rm [-f | -i] [-dPRrvW] file ... unlink file
जनवरी नैश

2
@barrycarter जो पूरी तरह से सत्य नहीं है - यह अभी भी हटाने का प्रयास करेगा /, यह सिर्फ nonexistent फ़ाइल को छोड़ xyz*देगा (जो कि मैच की कमी के कारण विस्तार नहीं करेगा)।
शराबी

3
@barrycarter यह व्यवहार आपके शेल के ग्लोबिंग कॉन्फ़िगरेशन पर निर्भर करता है। कम से कम मैकओएस पर बश के डिफ़ॉल्ट में, यह वास्तव में डिलीट करता है aऔर bमेरे लिए - यहां तक ​​कि निर्दिष्ट किए बिना भी -fecho rm -f a b c*वास्तविक व्यवहार को देखने के बजाय उसी के साथ कमांड करें ।
शराबी

2
@barrycarter और शराबी: क्या होता है यह इस बात पर निर्भर करता है कि शेल वेरिएबल नॉनमैच सेट है या नहीं।
थॉमस पैडरॉन-मैक्कार्थी

13

आम आदमी / लिनक्स / यूनिक्स नौसिखिया के लिए:

rm अकेले कुछ नहीं करता है क्योंकि आपने यह नहीं बताया है कि छुटकारा क्या है।

man rm यदि आप इसे समझते हैं, तो इस बारे में सबसे अधिक व्याख्या कर सकते हैं।

-r पुनरावर्ती का अर्थ है, "सबफ़ोल्डर्स में सब कुछ शामिल करें"

-f बल का अर्थ है, "मुझे पुष्टि करने के लिए मत पूछो" मोड

rm -rf(यह मत करो)/ कहेंगे कि सब कुछ /(रूट फ़ोल्डर के तहत ) बिना जाँच के हटा दिया जाएगा (हाल के macOS संस्करणों पर SIP आपको इसके द्वारा macOS को हटाने से रोक देगा, लेकिन बहुत सारे अन्य सामान हटा दिए जाएंगे)

rm [some file name] बस उस फ़ाइल को हटा देगा।

rm -rf /home/myuser/booksमें सब कुछ हटा होता myuserहैbooks फ़ोल्डर, साथ ही फ़ोल्डर।


6
आजकल आपको rm -rf / --no-preserve-rootअपने पैर को सही तरीके से शूट करने के लिए करने की आवश्यकता है।
गैलिफ़्रेयन

1
@Gallifreyan क्या आपके पैर को सही तरीके से शूट करने का कोई तरीका है?
पास्कलवीकूटेन

1
यह एक अच्छी तरह से काम करने के लिए कहा जाता है। मुझे कोई और नहीं पता :)
Gallifreyan

1
MacOS पर @Gallifreyan? pastebin.com/aVAsNcKC अन्यथा इंगित करता है
nohillside

@Gallifreyan: find / -delete"काम" (यानी वास्तव में चीजों को हटा देना चाहिए, इसलिए इसे न चलाएं।)
पीटर कॉर्ड्स

4

नहीं, लेकिन अगर आप हटाना चाहते हैं तो इसका एक उदाहरण है:

जब आप टर्मिनल लॉन्च करते हैं (अपने / एप्लिकेशन / यूटिलिटीज फ़ोल्डर में) डेस्कटॉप निर्देशिका में नेविगेट करने के लिए सीडी ~ / डेस्कटॉप। यदि आपके पास यहाँ MyFile.rtf नाम की एक फ़ाइल है जिसे आप कभी नहीं देखना चाहते हैं, तो आप फिर से देखना चाहते हैं, आप इस कमांड को चला सकते हैं:

rm MyFile.rtf

जब आप रिटर्न दबाते हैं, तो फ़ाइल पॉफ जाएगी! यह चला जाएगा, टोस्ट, इतिहास। आप इसे वापस नहीं पा सकते।


वास्तव में आरएम फाइल के सभी संदर्भों को हटा देता है, अगर मैं दस्तावेज को सही ढंग से समझ रहा हूं, तो प्रत्येक बाइट को ओवरराइट करके फ़ाइल की हार्ड ड्राइव को स्क्रब न करें।
NoBugs

@NoBugs लेकिन निष्पक्षता में यह है कि सभी आधुनिक 'काम' को कैसे हटाएं, विंडोज शामिल है। यदि हटाने की सुविधा प्रत्येक बाइट को अधिलेखित कर रही है तो इसे इस तरह विज्ञापित किया जाएगा (मुख्यतः क्योंकि इसमें अधिक समय लगता है और अधिकतर समय अनावश्यक होता है)।
पागलखाना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.