मुझे कुछ निर्देशिका (कई अन्य फ़ाइलों के साथ) में फ़ाइलों का एक गुच्छा मिला है जिसे मैं स्थानांतरित करना चाहता हूं ।
सौभाग्य से, मैं जिन फ़ाइलों को स्थानांतरित करना चाहता हूं, उनके नाम में एक निश्चित पहचानकर्ता होता है, इसलिए मैं कर सकता हूं ls | grep IDENTIFIER स्थानांतरित करने के लिए फ़ाइलों की सटीक सूची प्राप्त करने के लिए ।
लेकिन, मैं कैसे निष्पादित कर सकता हूं mv file /path/to/dest/folder/ एक बार में, और एक-एक करके नहीं (स्थानांतरित करने के लिए बहुत सारी फाइलें हैं)?
उदाहरण के लिए, सभी फ़ाइलों को स्थानांतरित करने के लिए .doc विस्तार:
mv *.doc /path/to/dest/folder/
यह वर्तमान निर्देशिका के तहत सभी दस्तावेज़ फ़ाइल को विशिष्ट गंतव्य पर ले जाएगा ।
संपादित करें
टिप्पणी का जवाब देने के लिए:
लेकिन स्थानांतरित करने के लिए फ़ाइलों की सूची विस्तार द्वारा निर्धारित नहीं है । कुछ फाइलों के नाम हैं: ABC-IDENTIFIER-XYZ.ext और कुछ बस IDENTIFIER-XYZ.ext सभी में अलग-अलग एक्सटेंशन हैं, ज्यादातर xml या properties.
यदि आप मनमानी फ़ाइलों का एक सेट स्थानांतरित करना चाहते हैं (नामों और प्रकारों में कोई सामान्य पैटर्न नहीं) तो आप ऐसा कर सकते हैं जैसा कि श्री राजानंद ने कहा:पहले उस निर्देशिका पर जाएं जिसमें वे फाइलें हैं जिन्हें आप स्थानांतरित करना चाहते हैं
mv file1.ext1 file2.ext2 file3.ext3 /destination/
यदि फ़ाइलें विभिन्न निर्देशिकाओं में बिखरी हुई हैं, तो आपको केवल प्रत्येक फ़ाइल के लिए पथ निर्दिष्ट करना होगा mv कमान।
यदि आपके पास स्थानांतरित करने के लिए इतनी सारी फाइलें हैं तो आप वास्तव में इसके लिए बहुत अधिक हो सकते हैं mv कमांड (या अन्य कमांड जैसे rm). मैं उपयोग करने का सुझाव देता हूं xargs फैशन की तरह एक पाश में व्यक्तिगत रूप से प्रत्येक फ़ाइल को स्थानांतरित करने के लिए । चारों ओर जाने का एक तरीका यह है:
द ls -1 (माइनस वन) सुनिश्चित करता है कि प्रत्येक पंक्ति पर केवल एक फ़ाइल नाम है । यदि आप के लिए छिपा उपनाम है ls आदेश आपके पास एक ही पंक्ति में कई फ़ाइल नाम हो सकते हैं और अनजाने में उस फ़ाइल को स्थानांतरित कर सकते हैं जिसे आपने स्थानांतरित करने का इरादा नहीं किया था ।