जैसा कि @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`