आप नीचे भी कुछ ऐसा कर सकते हैं।
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/