आप नीचे भी कुछ ऐसा कर सकते हैं।
find path_A -name "*AAA*" -print0 | xargs -0 -I {} mv {} path_B
कहाँ पे,
-0यदि रिक्त स्थान या वर्ण (newlines सहित) हैं, तो कई कमांड काम नहीं करेंगे। यह विकल्प रिक्त स्थान के साथ फ़ाइल नामों की देखभाल करता है।
-Iमानक इनपुट से पढ़े गए नामों के साथ प्रारंभिक-तर्कों में प्रतिस्थापित-आवृत्तियों की घटनाओं को बदलें। इसके अलावा, अयोग्य रिक्तियां इनपुट आइटम को समाप्त नहीं करती हैं; इसके बजाय विभाजक न्यूलाइन वर्ण है।
परिक्षण
मैं के रूप में दो निर्देशिका बनाया sourcedirऔर destdir। अब, मैं अंदर फ़ाइलों का गुच्छा बनाया sourcedirके रूप में file1.bak, file2.bakऔरfile3 with spaces.bak
अब, मैंने कमांड को निष्पादित किया,
find . -name "*.bak" -print0 | xargs -0 -I {} mv {} /destdir/
अब, अंदर destdir, जब मैं करता हूं, तो मैं lsदेख सकता था कि फाइलें कहां से स्थानांतरित हुई sourcedirहैं destdir।
संदर्भ
http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/