मैंने गलती से कोई फ़ाइल हटा दी है:
rm -rf ./Desktop/myScript.sh
मुझे लगता है कि फ़ाइल को पुनर्प्राप्त करना संभव है, क्योंकि rm
कमांड अस्थायी रूप से हटा देता है। मैं मैक OSX पर हटाए गए फ़ाइल को कैसे पुनर्प्राप्त कर सकता हूं?
मैंने गलती से कोई फ़ाइल हटा दी है:
rm -rf ./Desktop/myScript.sh
मुझे लगता है कि फ़ाइल को पुनर्प्राप्त करना संभव है, क्योंकि rm
कमांड अस्थायी रूप से हटा देता है। मैं मैक OSX पर हटाए गए फ़ाइल को कैसे पुनर्प्राप्त कर सकता हूं?
जवाबों:
मैकओएस एक यूनिक्स ओएस है और rm
इसका अर्थ है "गुड-बाय"। जीयूआई इंटरफ़ेस आपको एक फ़ाइल को कचरा में स्थानांतरित करने की अनुमति देता है (जिसे आप फिर से पुनर्प्राप्त कर सकते हैं) लेकिन ऐसा आपने नहीं किया। यदि आपके पास बैकअप है (जैसे आपके पास टाइम मशीन चल रही है) तो आप बच जाते हैं।
स्पष्टीकरण
सच पूछिये तो (के रूप में @ire_and_curses अंक बाहर) एक rm
बस फ़ाइल के लिए निर्देशिका प्रविष्टि को हटा देता है, जबकि छोड़ने डिस्क ब्लॉक में इसका इस्तेमाल किया, अछूता। यदि आप उस फ़ाइल सिस्टम को छोड़ सकते हैं जिसमें फ़ाइल थी, तो उन्नत तरीके हैं जिनके द्वारा आप उन ब्लॉक सामग्री को फिर से खोज सकते हैं। कुछ रिकवरी टूल भी हैं जिन्हें नुकसान की वसूली के लिए खरीदा जा सकता है। केंद्रीय मुद्दा यह है कि आपकी फ़ाइल द्वारा प्रतिनिधित्व किए गए डिस्क ब्लॉक में से कोई भी अन्य फिर से उपयोग नहीं करता है।
MacOS में एक सुरक्षित निष्कासन कमांड ( srm
) भी है, जो किसी फ़ाइल को लिखने से पहले unlink
उसे अप्राप्य बना देता है। मैं इस unlink
शब्द का उपयोग करता हूं क्योंकि यह शेल के rm
कमांड से जुड़ा अंतर्निहित सिस्टम कॉल है । यह नीचे इस चर्चा के अगले भाग के लिए चरण निर्धारित करता है।
पक्षीय लेख
[मुझे यह जोड़ने की जल्दबाजी करनी चाहिए कि भले ही आप एक डिस्क को कई बार लिख लें, लेकिन पढ़ने के तरीके ऐसे हैं जो पहले दर्जन या अधिक बार लिखे गए थे। निपटान के लिए एक डिस्क को ठीक से साफ करने के लिए वास्तव में एक एसिड स्नान, एक बड़ा हथौड़ा और एक श्रेडर की आवश्यकता होती है। ]
unlink
फ़ाइल को इनच करें फ़ाइल के इनकोड लिंक-गिनती को घटाता है। यदि यह मान शून्य तक पहुँच जाता है, तो फ़ाइल को फाइलसिस्टम डायरेक्टरी से हटा दिया जाता है और इसका डिस्क ब्लॉक फिर से उपयोग के लिए मुक्त हो जाता है। यह केवल तब होता है जब किसी भी प्रक्रिया में फ़ाइल नहीं होती है। यह अक्सर प्रशासकों को भ्रमित करने के लिए होता है कि एक फाइलसिस्टम बहुत बड़ी मात्रा में अंतरिक्ष का उपयोग कर रहा है जिसे डिस्क ब्लॉक के सरल योग (कुछ ऐसा du
) के साथ हिसाब नहीं किया जा सकता है । सबसे अधिक बार कारण यह है कि एक खुली फ़ाइल को हटा दिया गया है, ताकि यह अब इसकी निर्देशिका में प्रतिनिधित्व न करे। कारण यह है कि डिस्क ब्लॉक तब तक अप्रयुक्त रहते हैं जब तक कि फ़ाइल का उपयोग करने की अंतिम प्रक्रिया समाप्त नहीं हो जाती।
एक फ़ाइल खोलना और तुरंत unlink
आईएनजी यह वास्तव में सुरक्षित, अस्थायी फ़ाइलों को बनाने के लिए एक सामान्य अभ्यास है। lsof
यदि आप शून्य की लिंक गणना (NLINK) के साथ फ़ाइलों की तलाश करते हैं तो उपकरण इन अन्यथा अदृश्य फ़ाइलों को उजागर कर सकते हैं।
यूनिक्स और लिनक्स में (जिनमें से मैकओएस एक ब्रांडेड यूनिक्स है), rm
अगर ऐसा हो सकता है तो बिना धूमधाम के "डो-इट" के यूनिक्स दर्शन का अनुसरण करता है। यही है, यदि आपके पास फ़ाइल हटाने की अनुमति है (यानी आपकी निर्देशिका लिखने की अनुमति देती है) तो rm
वह वही करता है जो आप पूछते हैं। आप एक शेल उर्फ बनाना पसंद कर सकते हैं rm='rm -i'
जो ऑपरेशन करने से पहले आपको पुष्टि के लिए संकेत देता है। यदि आवश्यक हो तो ओवरराइड के -f
साथ स्विच का उपयोग करना rm
। rm
जब आप glob
हटाते हैं तो एक उपनाम सबसे उपयोगी होता है rm *.log
। यानी, आपके पास सूची में किसी फ़ाइल को छोड़ देने का विकल्प है।
आपकी सामग्री के आधार पर, लेकिन आप ऐसा करने के लिए विभिन्न 3 पार्टी सॉफ्टवेयर्स का उपयोग कर सकते हैं, जैसे:
और बहुत सारे।
आप ऐप स्टोर में 'डेटा रिकवरी' टाइप करके अधिक ऐप पा सकते हैं।
अधिक उन्नत तरीका है अपने OSX को रिकवरी मोड में बूट करें (या यदि आप कर सकते हैं और अपने विभाजन को umount करें) और इसे मैन्युअल रूप से देखें (यदि आपको अपनी स्क्रिप्ट से कुछ विशिष्ट पाठ याद है)।
कुछ उदाहरण:
diskutil list
sudo cat /dev/disk0s2 | strings | grep -C20 "my_stuff"