क्या हुआ जब मैं "mv *"? कोई त्रुटि नहीं दिखाई गई और अब केवल एक फ़ोल्डर बचा है। क्यों?


12

14 जीबी डेटा के साथ एक फ़ोल्डर में निष्पादित कमांड "mv स्पेस *" था।

mv *

du -hs 

क्या यह वही है जहां 14 जीबी डेटा गया है? मैंने किया क्या है?


अधिक जानकारी की आवश्यकता है। कौन सा प्लेटफ़ॉर्म?
जरमुंड

4
@ जरमुंड मुझे लगता है कि कुछ * निक्स मान लेना सुरक्षित है, यह देखते हुए कि दोनों आदेशों का उल्लेख यूनिक्स जैसी प्रणालियों पर किया गया है। इस संबंध में, मुझे लगता है कि यह कहना सुरक्षित है कि अधिकांश गोले समान काम करते हैं। तो हम एक उपयोगी उत्तर देने के लिए पर्याप्त कटौती कर सकते हैं, हालांकि सटीक मंच स्पष्ट रूप से नहीं कहा गया है।
एक CVn


उल्लेख करने के लिए एक और नुकसान। आपको अविश्‍वसनीय डेटा पर कभी भी mvया cp" " नहीं चलना चाहिए ऐसा इसलिए है क्योंकि " " का विस्तार हो जाता है, और "--verbose" जैसे नामों वाली फाइलें कमांड-लाइन तर्क प्राप्त करती हैं। इसके बजाय क्या उपयोग करें:cp ./* anotherFolder
VasyaNovikov

जवाबों:


31

मेरा अनुमान है कि बैश वाइल्डकार्ड का विस्तार करता है, और इस तरह हर फ़ोल्डर को आपके पिछले एक में ले जाता है।

उदाहरण के लिए:

$ ls
test1  test2  test3  test4

$ mv *

$ ls
test4

$ ls test4
test1  test2  test3

यहाँ, प्रारूप के अनुरूप mv *विस्तार किया गया है । इस प्रकार, प्रत्येक फ़ोल्डर को अंतिम एक में ले जाया जाता है।mv test1 test2 test3 test4mv [OPTION]... SOURCE... DIRECTORY


9
इस। वैसे, यदि आप (या ) *में उपयोग करना चाहते हैं तो उनके स्विच पर एक नज़र डालें । यह सुनिश्चित करता है कि आपको इस तरह की चीजों से कुछ नहीं मिलता है। mvcp--target-directory
एक CVn

2

जैसा कि @ssssteffff द्वारा बताया गया है, mv *शेल वर्तमान निर्देशिका में फ़ाइलों से वाइल्डकार्ड विस्तार कर रहा है। हालाँकि mvकमांड का व्यवहार इस बात पर निर्भर करता है कि कितने तर्क *फैलते हैं। यदि दो से अधिक तर्क हैं, तो अंतिम तर्क को एक निर्देशिका होना चाहिए:

   mv [OPTION]... SOURCE... DIRECTORY

इसलिए,

मैंने 5 फाइलें बनाईं

$ touch 1 2 3 4 5
$ ls
1  2  3  4  5
$ mv *
mv: target ‘5’ is not a directory
$ ls
1  2  3  4  5

अब अगर मैं एक निर्देशिका बनाता हूं जो वाइल्ड-कार्ड के विस्तार के लिए अंतिम पैरामीटर के रूप में आता है, तो:

$ mkdir 6
$ mv *
$ ls
6
$ ls 6
1  2  3  4  5

आपको अंतिम जांच करनी चाहिए कि अंतिम तर्क क्या था।

  • यदि अंतिम तर्क एक निर्देशिका था, तो आपका डेटा संभवतः सुरक्षित है।
  • यदि तर्कों की कुल संख्या 2 थी, और अंतिम तर्क एक निर्देशिका थी, तो आपका डेटा भी शायद सुरक्षित है।
  • यदि तर्कों की कुल संख्या 2 थी, और अंतिम तर्क एक फ़ाइल था, तो दूसरी फ़ाइल सुनिश्चित हो गई है।

क्या आप वाकई इस तरह से कुछ त्रुटि नहीं देख रहे हैं?

 mv: target ‘5’ is not a directory`
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.