पर ले जाएं मेरे पास 10,000 निर्देशिकाओं के साथ एक निर्देशिका (निर्देशिका ए) है। मैं उनमें से कुछ को निर्देशिका बी और अन्य को निर्देशिका सी में स्थानांतरित करना चाहता हूं। मैंने एक टेक्स्ट फ़ाइल बनाई जिसमें सभी फाइलों के नाम शामिल हैं जिन्हें मैं निर्देशिका बी में ले जाना चाहता हूं और दूसरा फाइल जो मैं चाहता हूं निर्देशिका सी में जाने के लिए। मैं इन फ़ाइलों को नई निर्देशिकाओं में स्थानांतरित करने के लिए लूप के लिए बैश कैसे लिख सकता हूं।बैश: टेक्स्ट फ़ाइल में सूचीबद्ध फ़ाइलों पर लूप और उन्हें
स्यूडोकोड:
textfileB में फ़ाइल के लिए:
कदम textfileC में निर्देशिका बी
के लिए निर्देशिका एक से फाइल फ़ाइल के लिए: निर्देशिका सेल्सियस के लिए निर्देशिका एक से
कदम फ़ाइल
क्षमा करें यदि यह कहीं और पूछा जाता है, लेकिन मैंने बैश सीखने के लिए घंटों बिताए हैं और मुझे बस यह नहीं मिला है। मैं किसी अन्य धागे में इतना कुछ खोजने में सक्षम नहीं था जिसे मैं समझ सकता था (शायद मुझे सही खोज शब्द नहीं पता)।
मैं कुछ इस तरह है, लेकिन मुझे पाने के लिए यह नहीं काम कर सकता है:
FILES=[dont' know what goes here? An array? A list?
मैं सिर्फ पाठ फ़ाइल नाम राज्य कर सकते हैं और यदि ऐसा है तो क्या प्रारूप फ़ाइलों की क्या ज़रूरत है होना करने के लिए? name2.ext, name1.ext, या name1.ext name2.ext]
for f in $FILES; do mv $f /B/$f [not sure about the second argument for mv]; done
THX
BTW मैक OSX 10.6.8 (Snow Leopard) एप्पल टर्मिनल v। 2.1.2/273.1 बैश 3,2
धन्यवाद। यह काम किया। दूसरों के लिए, यहां पूरा आदेश है, जिसे मैंने एक पंक्ति के रूप में दर्ज किया है: cat list_of_files_with.txt | जबकि मैं पढ़ा; एमवी $ i/वॉल्यूम/hard_drive_name/new_destination_directory_name करें; – PatentDeathSquad
@ AquaT33nFan - मैं उद्धरणों में '" $ i "डाल दूंगा ताकि आप रिक्त स्थान और अन्य वर्णों के साथ फ़ाइल नामों को संभाल सकें जो आमतौर पर कमांड लाइन में दिखाई नहीं देते हैं। – asveikau
बधाई हो, आपको अभी [यूयूओसीए] प्राप्त हुआ है (http://partmaps.org/era/unix/award.html) –