`-Rf` नामक फ़ाइल को निकालने के लिए मुझे किस कमांड का उपयोग करने की आवश्यकता है?


67

मैंने कुछ बिंदु पर कुछ पागल किया, जिसने -rfमेरे फाइलसिस्टम पर एक फ़ाइल बनाई ।
अब मैं यह नहीं जान सकता कि इसे कैसे हटाया जाए ...

मैंने कोशिश की:

rm "-rf"
rm \-rf

ये बस तुरंत बाहर निकलें, अरे!

किसी को पता है कि इस फ़ाइल को कैसे निकालना है? अधिमानतः गलती से मेरे पूरे फ़ोल्डर को साफ करने के बिना।


33
सटीक सिंटैक्स को याद किए बिना आपके सिस्टम से rmकॉल करने की कोशिश करने वाले कुछ तंत्रिका -rf!
क्रिस्टोफ़े डी

3
यह समझाने के लिए कि वे काम क्यों नहीं करते हैं: उद्धरण और भागने आपके शेल (आमतौर पर बैश) द्वारा पार्स किए जाते हैं, और फिर पार्सिंग का परिणाम rm(इसमें argcऔर इसमें argv) पारित किया जाता है और इस प्रकार, उन दोनों परिणामों को सरणी ["rm", "-rf"]में पास किया जाता है rm, जो आपको उम्मीद होगी।
थानाटोस

3
मुझे लगता है कि यह यूनिक्स और लिनक्स स्टेक्सएक्सचेंज
frabjous

12
एक पुराने गैग *को एक फ़ोल्डर में एक फ़ाइल नाम दिया जाता है। एक का नाम शामिल करें -rfसाथ ही और मजेदार ;-) घड़ी
RBerteig

@RBteteig: mkdir './-rf '(ls --classify, शेल उर्फ ​​में एक सामान्य डिफॉल्ट, / / ​​को जोड़ देगा)

जवाबों:


127
unlink -rf

या

rm -- -rf

47
IMO सीखने के लिए यह सबसे उपयोगी उपाय है, क्योंकि '-' प्रसंस्करण तर्कों को रोकने के लिए जीएनयू उपकरणों में मानकीकृत है
नाथन ओ'सुल्लीवन

1
अधिक सटीक होने के लिए, जीएनयूgetopt का उपयोग करने वाली कोई भी चीज है --, जिसका अर्थ सबसे आधुनिक लिनक्स उपकरण होना चाहिए।
जियोफ्रे झेंग


34

वैकल्पिक रूप से आप हमेशा निर्देशिका को इसके अंदर संपादित कर सकते हैं और उस तरह से फ़ाइल को हटा सकते हैं।

vim .

और फिर उस पर फ़ाइल के साथ लाइन को हटा दें (डी का उपयोग करके, डी डी काम नहीं करेगा)।


5
अच्छी चाल! [कई बेकार चार्ट]
सर्जियो अकोस्टा

मुझे नहीं लगता था कि जब मैं पहली बार आज दोपहर को यह उत्तर देख रहा था, तो यह उस गिरावट का हकदार था, लेकिन मेरे पास यह सत्यापित करने का मौका नहीं vimथा कि एक विधिवत मोड था। स्पष्ट रूप से, वास्तविक निर्देशिका को एक पाठ संपादक में संपादित करना न तो अनुशंसित है, न ही वास्तविक विशेषज्ञ घेरा कूद के बिना संभव है। ध्यान दें कि emacsयह भी काम करेगा, और उसी कारण से।
राबर्टी

1
चतुर विम उपयोग के लिए अतिरिक्त अंक! :)
पियरे-एंटोइन लाएफ़ेट

जानकर अच्छा लगा;)
स्कोप्पी

25

अजीब फाइलनाम को हटाने के लिए एक सामान्य तकनीक का उपयोग करना है।

 ls -li

फ़ाइल की इनकोड संख्या खोजने के लिए और फिर उपयोग करें।

find ./ -inum <number of file> -delete

सभी विशेष मामलों को याद रखने की आवश्यकता नहीं है।


4
findफ़ाइलों को हटाने की शक्ति नहीं थी।
zneak

यह अज्ञात नामों वाली फ़ाइलों को पकड़ने (बैकस्पेस वर्णों के साथ शुरू होने या शामिल होने या अंत में अतिरिक्त व्हाट्सएप) के लिए भी बहुत अच्छा है, बशर्ते आपके बॉक्स पर एक सभ्य जीएनयू की पहुंच हो।
ओल्फान

17

भले ही मैं "आरएम - -फिलनेम" ट्रिक के बारे में जानता हूं, आम तौर पर जब मुझे किसी तरह एक अग्रणी के साथ एक फ़ाइल मिलती है - इसके नाम में कि मैं हटाना चाहता हूं मैं एक जीयूआई फ़ाइल प्रबंधक शुरू करता हूं और वहां से करता हूं, मौका खत्म करने के लिए गलतियों की।


1
उसके पास जीयूआई बिल्कुल नहीं हो सकता है, इसलिए यह काम नहीं कर सकता है।
वफ़र्स

12
अगर यह मूर्खतापूर्ण और गलत था, तो शायद यह एक पतन का पात्र है, लेकिन मैं इस जवाब को सिर्फ इसलिए नहीं मानता क्योंकि यह 'काम नहीं कर सकता' है। इस सुझाव से कोई नुकसान नहीं हो सकता है।
JT.WK

4
X के बिना उन लोगों के लिए हमेशा आधी रात के कमांडर (या अन्य शाप-आधारित फ़ाइल प्रबंधक) होते हैं
thomasrutter

9

यदि आप अभी सुनिश्चित होना चाहते हैं:

 mv -- -rf remove.-rf
 [[check]]
 rm remove.-rf

4

बस अगर आप कुछ गैर-जीएनयू यूनिक्स पर हैं, जहां आप खुद को पाषाण युग में वापस महसूस करते हैं (कोई --वाक्यविन्यास, कोई -inumस्विच खोजने के लिए नहीं, कोई अनलिंक कमांड नहीं, तो आपके संपादक ने संपादन निर्देशिकाओं आदि को अस्वीकार कर दिया है) आप अभी भी खुद को मदद कर सकते हैं:

find . -name '-rf' -print | xargs rm -i

यह सभी संभावित उम्मीदवारों को आरएम को खिलाने का कारण बनेगा जो बदले में उसे दी गई हर एक फाइल के लिए अनुमति / इनकार मांगेगा।

अगर आपका स्विच (HP-UX 10.2 PA-RISC 1.1 किसी पर भी?) का rmसमर्थन नहीं करता है -i, तो अधिक सावधान रहें:

find . -name '-rf' -print
# check that find's output is exactly and only what you need to delete
find . -name '-rf' -print | xargs rm

क्या होगा अगर आपके सिस्टम में भी नहीं है find?
रेयान

यह वास्तव में बुराई होगी। काश, मैं अभी तक एक के बिना एक यूनिक्स स्थापना को पूरा करने के लिए है। क्या आप मुझे एक संकेत दे सकते हैं?
ओल्फान

इसे कुछ विचार देते हुए, मेरा उत्तर अधिक उपयुक्त होता, सर्वरफॉल्ट पर पूछे गए प्रश्न। सुपर यूज़र्स के पास मशीनरी के रूप में प्राचीन होने की संभावना नहीं है जितना मैं उल्लेख कर रहा हूं। और ऐसा करने वालों ने खुद की मदद करना सीख लिया होगा। ;-)
ओल्फान

+1, @ ओफ़्फ़न, आप रक्षा में, किसी को अब एक कोठरी में एक विरासत यूनिक्स का सामना करना पड़ रहा है कहीं से अभी भी युक्तियाँ और चाल जानने के लिए एक संसाधन की आवश्यकता है ...
RBerteig

3

जलेदेव के उत्तर का समर्थन करते हुए , मैं इसमें सुधार करूंगा:

rm -i -- -rf

इंटरैक्टिव मोड में होना और पुष्टि के लिए पूछना, ताकि आप वास्तव में सुनिश्चित कर सकें कि आप क्या हटाते हैं। (हालांकि समाधान ठीक है। यह आपके मन की शांति के लिए है)

वास्तव में, यहां तक ​​कि उपयोग करें:

\rm -i -- -rf

यह सुनिश्चित करने के लिए कि आप किसी भी उपनाम का उपयोग नहीं कर रहे हैं।


2

जैसा कि यह पहले ही सुझाया गया है कि मैंने हमेशा वाक्यविन्यास का उपयोग किया है

rm -rf -- filename

जब मुझे उपसर्ग के रूप में डैश के साथ एक फ़ाइल को निकालना पड़ा क्योंकि - कमांड को कहता है कि यह किसी अन्य पैरामीटर की खोज नहीं करता है, लेकिन फ़ाइल नाम।

इसे ध्यान में रखते हुए, आकस्मिक फ़ाइल विलोपन द्वारा अपने महत्वपूर्ण फ़ोल्डर की सुरक्षा के लिए मुझे बस -i नामक एक खाली फ़ाइल बनाने के लिए उपयोग किया गया था, जिसे * खोज को हल करते समय सामान्य रूप से फ़ाइल सूची के शीर्ष पर रखा जाता है। तो आज्ञा

rm -rf *

जब मेरे संरक्षित फ़ोल्डर पर एक्सटेंड किया जाता है, कमांड में, निष्पादन को कम करते हुए:

rm -rf -i filename1 filename2 .... (all the other files in the folder)

और शेल, तुरंत सब कुछ हटाने के बजाय, पुष्टिकरण के लिए पूछना बंद कर देता है (जैसा कि -i विकल्प की आवश्यकता होती है)।


-iफ़ाइल नाम हैक के लिए +1 - "मैं" उलझन में था, लेकिन यह परीक्षण करता है!
21

2

पिछली बार जब मुझे यह समस्या हुई थी, तो मैंने इसे हल किया था:

अजगर

आयात os

os.remove ( "- आरएफ")


1

मार्टिन क्लेटन सही है।

यह बहुत ही सरल और तार्किक है। यदि विकल्प मौजूद हैं तो यह हमेशा होता है -XXXया --CCCCयदि आप एक ./या पूरा रास्ता डालते हैं तो -rfविकल्प के रूप में नहीं माना जा सकता है और इसे सामान्य स्ट्रिंग माना जाएगा।

यह "सभी" अजीब फ़ाइल नामों के साथ काम करता है।

#pwd
/ Tmp / टेस्ट
# थैली ./-rf
#ls 
-rf
#rm ./-rf 
#ls
#

1

rm - -rf अधिकांश ग्नू उपकरण स्वीकार करते हैं - विकल्पों के अंत के मार्कर के रूप में

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.