ठीक है, मेरे पास डैश के साथ शुरू होने वाली फाइलों का एक गुच्छा है, -। जो इतना अच्छा नहीं है ... और मैं उनका नाम बदलना चाहता हूं। अपने विशेष मामले में मैं उनके सामने एक चरित्र रखना चाहूंगा।
मुझे निम्नलिखित पंक्ति मिली जो काम करनी चाहिए, लेकिन इसकी वजह से यह डैश नहीं है:
for file in -N*.ext; do mv $file x$file; done
यदि मैं echo
सामने रखता हूं तो मुझे mv
एक गुच्छा मिलता है
mv -N1.ext x-f1.ext
mv -N2.ext x-f2.ext
यह सही है, सिवाय इसके कि यह सोचेंगे कि पहला फ़ाइल नाम विकल्प है। इसलिए जब मैं हटाता हूं echo
और इसे चलाता हूं तो मुझे बस एक गुच्छा मिलता है
mv: illegal option -- N
मैंने इसे बदलने की कोशिश की है
for file in -N*.ext; do mv "$file" "x$file"; done
लेकिन उद्धरणों को नजरअंदाज कर दिया जाता है। एकल उद्धरण का उपयोग करने की कोशिश की, लेकिन तब चर का विस्तार नहीं किया गया था ... मैं यहाँ क्या करूँ?
अद्यतन: मैंने अब उद्धरणों को उद्धृत करने का भी प्रयास किया है। ऐशे ही:
for file in -N*.ext; do mv '"'$file'"' '"'x$file'"'; done
और जब मैं इसकी प्रतिध्वनि करता हूं, तो यह सही लगता है, लेकिन जब मैं वास्तव में इसे चलाता हूं तो मुझे मिलता है
mv: rename "-N1.ext" to "x-n1.ext":: No such file or directory
मुझे अभी कोई सुराग नहीं है कि यह कैसे करना है ... आह