"Rm -rf ~" कमांड को पूर्ववत करें


114

मेरे पास एक फ़ोल्डर था जिसे मैं '~' नाम नहीं देना चाहता था, इसलिए कमांड लाइन से मैंने टाइप किया

rm -rf ~

और गलती से मेरे होम फोल्डर को डिलीट कर दिया (क्योंकि ~ होम / यूजरनेम का समाधान)। क्या कोई रास्ता नहीं है या क्या मुझे मूल रूप से खाते को खरोंच से फिर से बनाने की आवश्यकता है?


18
क्या फाइल सिस्टम है?
तर्ने कल्मन

6
स्पष्ट रूप से आप लोगों को हास्य की कोई समझ नहीं है।
ब्लोमकविस्ट

21
हालांकि यह सीधे आपके प्रश्न का उत्तर नहीं देता है, rm -rf "~"उद्धरण के साथ इसका विस्तार करने के बजाय उस शाब्दिक नाम की तलाश करेंगे। लेकिन मुझे लगता है कि वैसे भी उपयोग करने से डर लगता है - मैं सही डायर पाने के लिए या जीयूआई फ़ाइल प्रबंधक से फ़ोल्डर को हटाने के लिए सत्यापित करने के लिए कुछ lsया cdपहले का उपयोग करेगा । शायद पहले dir का नाम बदलें ( mv "~" tilde), सत्यापित करें और फिर हटा दें।
हेनरिक एन

2
भविष्य के लिए, कमांड लाइन पर इंटरमीडिएट आरएम का उपयोग न करें। कचरे की तरह एक उपयोगिता का उपयोग करें और आप 1) फिर से वही गलती नहीं कर सकते हैं और 2) आरएम के खराब शेल उर्फ ​​के लिए उपयोग नहीं किया जा सकता है जो आपको परेशानी का कारण बनेगा।
फ्रेड नर्क

9
@HenrikN :// के बजाय "~" ऐसा ही करता है, लेकिन अन्य सामान्य समस्याग्रस्त फ़ाइलनामों के साथ भी काम करता है, जैसे कि वे डैश के साथ शुरू होते हैं और विकल्प की तरह दिखते हैं।
फ्रेड नर्क

जवाबों:


148

सामान्य तौर पर कोई आसान रास्ता नहीं है।

आप अपने दैनिक बैकअप से पुनर्स्थापित कर सकते हैं।


194
बैकअप पर आपकी टिप्पणी क्रूर और बात करने के लिए 100% है।
बेंजामिन बैनियर

3
ओएस एक्स बार सेट करता है कि बैकअप कैसे काम करना चाहिए (विशेषकर टाइम कैप्सूल के साथ)। सुझाव के लिए maketecheasier.com/… देखें कि उबंटू के साथ कुछ इसी तरह कैसे प्राप्त करें।
थोरबजोरन रावन एंडरसन

4
@ Thorbjørn रावन एंडरसन - टाइम मशीन के नर्वस ब्रेकडाउन होने पर इसे छोड़कर यह होता है। मेरे पास छह महीने में दो बार टाइम मशीन है।
फर्जी नाम

ऑफसाइट बैकअप बढ़िया है और बहुत सस्ती हो सकती है। मैं $ 5 / कंप्यूटर / महीने में Backblaze (Mac / Windows) का उपयोग करता हूं । बहुत से लोग Crashplan (Mac / Windows / Linux) को पसंद करने लगते हैं ।
हेनरिक एन

23
दैनिक क्या ????
लुक एम

66

अन्य लोग (जैसे @RiMMER , @Adam , और @James टी ) का उल्लेख किया है कि, सबसे फ़ाइल सिस्टम के लिए, यह संभव सबसे या अपने डेटा (शायद फ़ाइल नाम के बिना) के सभी ठीक करने के लिए, क्योंकि डेटा वास्तव में बाहर ध्यान केंद्रित किया नहीं है, केवल हटाया फाइल-टेबल से। यह सिर्फ लिनक्स का सच नहीं है - विंडोज और मैक का भी यही सच है।

हालाँकि, किसी ने भी सबसे महत्वपूर्ण बात का उल्लेख नहीं किया है - TURN OFF YOUR COMPUTER। अभी व।

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

इस प्रकार, अपने कंप्यूटर को बंद करें, हार्ड-ड्राइव को बाहर निकालें, और इसे दूसरे कंप्यूटर में डालें। हार्ड-ड्राइव को केवल-पढ़ने के लिए माउंट करें, और फ़ाइलों को एक अलग हार्ड-ड्राइव पर पुनर्प्राप्त करें। जब आपने वह सब कुछ पुनः प्राप्त कर लिया जो आप रुचि के साथ कर सकते हैं - और उसके बाद ही - मूल ड्राइव पर फ़ाइलें वापस लिखें।


11
यहां तक ​​कि बंद करने की प्रक्रिया हार्ड-ड्राइव को लिख सकती है। मुझे आपके कंप्यूटर को तुरंत अनप्लग करने की अनुशंसा करने में संकोच हो रहा है, क्योंकि यह निश्चित रूप से चीजों को बहुत खराब कर सकता है, लेकिन ... ठीक है, डेटा कितना महत्वपूर्ण है, इसके आधार पर आप इस पर विचार करना चाह सकते हैं।
ब्लूराजा - डैनी पफ्लुगुएफ्ट

1
ड्राइव / ओएस / आरोह बिंदु के आधार पर यह संभव हो सकता है कि तुरंत पीसी को बंद किए बिना आसानी से अनमाउंट और / या रिमाउंट किया जाए, फिर बंद कर दिया जाए आदि
मैथ्यू शारले

1
killall rmबंद करने के बजाय।
फ्रेड नर्क

1
आपके घर की निर्देशिका कितनी बड़ी थी और आपकी हार्ड ड्राइव कितनी बड़ी है, इस पर निर्भर करते हुए कि आपके डेटा में मुक्त क्षेत्रों को लिखने की संभावना बहुत पतली है।
माइक स्पीड

आप बहुत कठिनाई के बिना इस विधि का उपयोग करके पाठ फ़ाइलों को पुनर्प्राप्त कर सकते हैं (जब तक कि आपके पास उनमें व्हाट्स का एक मोटा विचार है), लेकिन बाइनरी फाइलें मूल रूप से असंभव के रूप में इतनी कठिन हैं।
शैतानिकप्यूपी

13

मेरा मानना ​​है कि एक समय में प्रत्येक लिनक्स उपयोगकर्ता को बैकअप के महत्व को सीखने से पहले इस दर्दनाक सबक को पहले से सीखना चाहिए, साथ ही विस्तार पर ध्यान देना और सावधान रहना चाहिए।

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

cd ~

फ़ोल्डर को हटाने का प्रयास करने से पहले, आपने देखा होगा कि यह निर्देशिका को आपके होम फ़ोल्डर में बदलेगा, न कि ~फ़ोल्डर में। एक बार जब आप फ़ोल्डर cdमें सही कमांड की आवश्यकता के लिए पर्याप्त समस्या निवारण चरणों के माध्यम से जाते हैं ~, तो आप इतिहास से अंतिम कमांड को खींचने के लिए अपने ऊपर तीर कुंजी दबा सकते हैं और फिर बदल cdसकते हैं rmऔर फिर केवल फ़ोल्डर को हटाने का प्रयास कर सकते हैं ।

मैं सुझाव देता हूं कि कोई भी कार्य स्थायी करने से पहले इस तरह के कदम उठाए जाएं । यह स्थायी या मूर्खतापूर्ण नहीं है, लेकिन आपके पास उन ऊप्स क्षणों को रोकने का एक बेहतर मौका है यदि आप कार्रवाई करते समय इस बात का ध्यान रखते हैं कि दुष्प्रभाव क्या हैं।


4
इससे पहले कि तुम छलांग लगाओ, और lsतुम्हारे सामने rm
LawrenceC

7

यदि आप ext3 फाइलसिस्टम का उपयोग कर रहे हैं, तो ext3grep आपका नया सबसे अच्छा दोस्त है। Ext3grep का उपयोग करने पर एक अच्छा ट्यूटोरियल (कई अन्य लोगों के बीच) यहां पाया जा सकता है


5

आप व्यक्तिगत फ़ाइलों को हटाना रद्द करने के लिए टेस्टडिस्क का उपयोग करने की कोशिश कर सकते हैं । यह स्पष्ट रूप से केवल ext2 और NTFS पर काम करता है (लेकिन अभी भी एक कोशिश के लायक है)।

यदि आपके पास ext3 या ext4 है, तो आप फ़ोटोरेक का उपयोग करके ज्ञात फ़ाइल को पुनर्प्राप्त कर सकते हैं , जो संभवतः आप जितना चाहते हैं उससे अधिक की वसूली कर सकते हैं। फ़ोटोरेक फ़ाइल नाम की जानकारी के बिना फ़ाइलों को पुनर्प्राप्त करता है ताकि फाइलों के माध्यम से जाना थकाऊ हो सके।


4

यदि आपके पास एक बड़ी पर्याप्त बाहरी ड्राइव है तो आपके पास एक और संभवतः सबसे सुरक्षित विकल्प है। पूरे घर के विभाजन को मुक्त स्थान सहित संग्रहीत करने के लिए आपको पर्याप्त स्थान की आवश्यकता होगी।

सीडी से बूट करें और होम ड्राइव को बिल्कुल भी माउंट न करें। बाहरी ड्राइव माउंट करें। dd बाहरी ड्राइव पर एक फ़ाइल में होम ड्राइव विभाजन। फाइल को एक लूपबैक डिवाइस के रूप में माउंट करें, इस छवि पर अपने हटाने का काम करें, इस ज्ञान में सुरक्षित कि आप अपने कंप्यूटर फाइल सिस्टम को कोई नुकसान नहीं पहुंचा सकते। फाइलसिस्टम के आधार पर, कोशिश करने के लिए कई चीजें हो सकती हैं, उनमें से कुछ संभावित विनाशकारी हैं।

इसने मुझे Reiser4 के बीटा संस्करण के साथ एक बार बचाया था जब मुझे नहीं पता था कि अगर मैं इसे केवल पढ़ता हूं तो भी यह क्या करेगा। मैं उस समय कहीं पढ़ा था जब पत्रिका लिखती थी अभी भी संभव है।

यह मरने की ड्राइव से डेटा बचाने के लिए एक अच्छी तकनीक है।


1
+1 यह उल्लेख करने के लिए कि अधिकांश जर्नल एफएस पर, यहां तक ​​कि एक माउंट भी जर्नल एसिटिविटी के हिस्से के रूप में डेटा लिख ​​सकता है।
11

2

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


2

मुझे आपके डेटा पर खेद है। आपकी डेटा समस्या से कैसे निपटा जाए, इस बारे में हर किसी ने कुछ न कुछ किया है, लेकिन यहां कुछ जानकारी दी गई है कि आप अगली बार जब आप किसी फोल्डर को देखते हैं तो आप उससे कैसे निपट सकते हैं ~

  1. जिसने भी इसे बनाया है और यह सुनिश्चित करें कि वे इसे फिर से कभी न करें।
  2. -rfडिलीट करने के लिए rm का उपयोग न करें और न ही कोई शक्तिशाली शक्तिशाली तर्क दें। इसके बजाय इसे अच्छा और धीमा लें और सुनिश्चित करें कि आप देख सकते हैं कि क्या हो रहा है। इसे खोल में बचकर अपने घर निर्देशिका में विस्तार किए बिना टिल्ड में प्रवेश करना संभव है। सिद्धांत रूप में आप कर सकते हैं rm -rI \~ , हालांकि आप एक कदम आगे जा सकते हैं।
    1. सबसे पहले, cd \~उस फ़ोल्डर को प्राप्त करने के लिए, शायद यह pwdजांचने के लिए भी उपयोग करें कि आपको वहां मिला है। जब आप वहाँ हों तो दस सामग्री हटा दें। फिर सावधान रहना होगा, लेकिन साथ फ़ोल्डर साफ rf -rI *और यदि आप प्राप्त करने की आवश्यकता .*भी।
    2. अब वापस ऊपर जाएं cd ..और डायरेक्ट्री को हटा दें rmdir \~

1

मैं सिर्फ सीडी। Snapshot और फ़ाइलों को पुनर्स्थापित करता हूं। लेकिन, मैं यह काम करता हूं और मुझे पता नहीं है कि ssapshot डायरेक्टरी से आया है। हालांकि मैं शायद यह एक लिनक्स सुविधा थी।


1
alias rm="rm -i"

मान लें कि आप बैश शेल का उपयोग कर रहे हैं (इसे अपनी .bashrc फ़ाइल में डालें ताकि यह आपके द्वारा खोले गए नए शेल के लिए बनी रहे)।

इसका परिणाम यह होना चाहिए कि आप यह पुष्टि करने के लिए पूछें कि आप क्या हटाना चाहते हैं, जो विशेष रूप से जब आप -rf कर रहे हों, तो अच्छा है, लेकिन यह प्रॉम्प्ट में आपके होम डाइरेक्टरी के पूर्ण पथ का '~' विस्तार करेगा, जो आपको देना चाहिए ऐसा कोई सुराग जिसे आप '~' फ़ाइल से नहीं हटा रहे हैं लेकिन वास्तव में आपका होमडियर है।

$ rm -rf ~
rm: examine files in directory /nas/users/u12345/unix (yes/no)? n

यह तकनीकी रूप से आपके प्रश्न का उत्तर नहीं है, लेकिन भविष्य में ऐसी समस्या से बचने में आपकी मदद कर सकता है।

EDIT: कुछ लोग आपको इस तकनीक का उपयोग करने से हतोत्साहित कर सकते हैं क्योंकि यह आपको "rm" कमांड से कम सावधान करता है। मेरे अनुभव में यह सच्चाई से बहुत दूर है। वास्तव में, उपनाम का प्रभाव आपको "rm -rf" का उपयोग करने से हतोत्साहित करना है - जैसा कि आप जानते हैं कि इसके परिणामस्वरूप कई संकेत मिलेंगे, जिनका आप जवाब नहीं देना चाहते हैं - और क्रमांक नहीं- rm -rf "आपको rm कमांड को जानबूझकर / बिन / आरएम (या जो भी) के रूप में संदर्भित करने की आवश्यकता है। यह सामान्य रूप से "rm" कमांड के अधिक सचेत और जानबूझकर उपयोग की ओर जाता है - जैसा कि आपको हमेशा "rm या / bin / rm" के मानसिक विकल्प के साथ rm के पूर्ववर्ती उपयोग की आवश्यकता होती है - आपके सर्वर और किसी अन्य दोनों पर। लॉग इन किया जाए। और एक ऐसी दुनिया जहाँ rm का उपयोग करने से पहले हर कोई सोचता था कि वह वास्तव में सुरक्षित होगी!


2
आपके द्वारा किए जा रहे सिस्टम पर निर्भर करता है। RHEL5 और OS X 10.6 पर कम से कम, विकल्प को -fओवरराइड करता -iहै।
डैनियल बेक

मैं नहीं जानता था कि। मैं YMMV के साथ अपनी सलाह देता हूं और "घर पर यह कोशिश न करें, या शायद काम पर अधिक महत्वपूर्ण है"!

9
यदि आप ऐसा करते हैं, तो आपके पास एक दिन यह उपनाम नहीं होगा - हो सकता है कि आप दूसरे कंप्यूटर पर बैठे हों या आपने कहीं पर ssh'd किया हो - और आप rm का उपयोग सुरक्षा जाल में करने के लिए करेंगे। आप कुछ ऐसा करेंगे जिससे आपको पछतावा हो।
फ्रेड नर्क

1
@FredNurk बिल्कुल। सर्वश्रेष्ठ शर्त केवल -i को स्वयं जोड़ना है, या केवल -f विकल्प का उपयोग नहीं करना है।
अरदा इलेवन

जब मेरे पास हटाने के लिए बहुत सारी फाइलें हैं, तो मैं शुरू करता हूं rm -i my_list_of_files। फिर मैं CTRL-C का उपयोग करता हूं और इसे संशोधित करने के लिए अपने आदेश को याद करता हूंrm -rvf my_list_of_files
ल्यूक एम

0

रिकवरी टूल - कमांड लाइन:

वसूली उपकरण - गुई:

इन्फोस:

मेरे व्यक्तिगत अनुभव में मुझे "UFS एक्सप्लोरर" और फोटोरेक का उपयोग करके अपना डेटा वापस मिल गया है

(१) = मुक्त स्रोत नहीं, मुक्त नहीं

(२) = मुक्त स्रोत नहीं, मुक्त

(3) = मुक्त स्रोत और मुक्त

(४) = ntfs सपोर्ट है

(5) = निर्देशिका संरचना सुविधा है


-3

rm हमेशा के लिए है।

यद्यपि यह आपकी अब मदद नहीं करता है, आप भविष्य में rm का उपयोग नहीं कर सकते हैं या वास्तव में अपने आप को मजबूर करने के लिए, अपने नाम से पहले एक स्क्रिप्ट जोड़ सकते हैं, जो rm नाम की है जो फ़ाइलों को एक ट्रैश फ़ोल्डर में ले जाती है जिसे आप किसी अन्य समय में साफ करते हैं (अनुमति देता है) तुम गलतियाँ करना और एसओएल नहीं होना)।


7
केवल इसके साथ समस्या यह है कि आप rm कमांड से थोड़े तेज और ढीले हो सकते हैं और यह भूल जाते हैं कि आपके पास अपनी कंपनी लिनक्स सर्वर पर काम न करने वाली कार्यक्षमता नहीं है ... उफ़ ...
jmort253

2
-1 यह नीचे दिए गए जवाबों के रूप में एक ही समस्या है (इसलिए मैं किसी और की टिप्पणी चुरा लूंगा): एक दिन इस स्क्रिप्ट की जगह नहीं है - शायद आप किसी अन्य कंप्यूटर पर बैठे हैं या आपने कहीं पर ssh'd है - और आप rm का उपयोग सुरक्षा जाल में किया जा रहा है और आप कुछ ऐसा करेंगे जिसका आपको पछतावा है।
DMA57361

@ कोरी हालांकि मैं मानता हूं कि यह एक बुरी आदत का कारण बन सकता है, +1 क्योंकि यह जवाब बहुत भारी हो गया है
जॉन मिलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.