कमांड लाइन से हटाने से GUI की तुलना में काफी कम समय क्यों लगता है?


26

जैसा कि मैंने अपने कंप्यूटर से एक दर्जन या तो छवियों को हटाने के बारे में सोचा था: rm -rfनिर्देशिका की सामग्री पर एक त्वरित आदेश के साथ , सभी चित्र एक तस्वीर में चले गए थे। जब मैं उसी दर्जन या तो छवियों को ट्रैश कैन / रीसायकल को खींच सकता हूं, तो कभी-कभी 10 सेकंड या उससे अधिक समय लगता है।

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


1
यह विंडोज़ पर भी सच है, संभवतः नीचे दिए गए समान कारणों के लिए।
क्रिस एच

जवाबों:


38

जैसा कि आपने ठीक से देखा कि GUI फाइलों को केवल "डिलीट" करने से ज्यादा करता है।

$ rm -rf 

वहाँ फ़ाइलों और फ़ोल्डरों को हटाने के फ़ोल्डरों में पुनरावृत्ति करता है।

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

उदाहरण के लिए, Gnome 3 पर फ़ाइलों को स्थान पर ले जाया जाता है:

~/.local/share/Trash/files/<filename>[.<version>]

filenameमूल फ़ाइल नाम कहां है, और versionफ़ाइल को विशिष्ट बनाने के लिए एक वर्धित संस्करण संख्या है (पहला फ़ाइल उदाहरण में कोई संस्करण संख्या नहीं है)। उस से संबद्ध .trashinfoफ़ाइल फ़ोल्डर में संग्रहीत है:

~/.local/share/Trash/info/<filename>[.<version>].trashinfo

इस फ़ाइल में हटाने से पहले फ़ाइल का मूल पथ है, साथ ही इस फ़ाइल को हटाए जाने की तारीख और समय भी।

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

उस में से कोई भी एक साधारण rmया mvकमांड के साथ नहीं किया जाता है ।


1
अरे, सभी टिप्पणियों को किसने हटाया? हम सिर्फ यह समझ रहे थे कि यह उत्तर गलत हो सकता है। कम से कम trash-cliयह पुनरावृत्ति करने के लिए प्रतीत नहीं होता है। जब कोई फ़ोल्डर हटा रहा होता है, तो क्या Gnome 3 वास्तव में .trashinfoप्रत्येक सबफ़ोल्डर और सभी युक्त फ़ाइलों के लिए पुनरावर्ती फ़ाइल डालता है ?
mb21

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