2009-03-10 15 views
10

सभी फ़ाइलें ले जा रहा मैं एक निर्देशिका है कि इसनिर्देशिकाएँ वन स्टेप अप

[email protected]:/mydir/ucsc_mm8> tar -xvf *.tar 
1/chr1.fa.masked 
1/chr1_random.fa.masked 
2/chr2.fa.masked 
3/chr3.fa.masked 
4/chr4.fa.masked 
5/chr5.fa.masked 
5/chr5_random.fa.masked 
19/chr19.fa.masked 
Un/chrUn_random.fa.masked 

की तरह लग रही मुझे क्या करना चाहते हैं उपनिर्देशिका /1/Un तक के सारे "* .masked" फ़ाइलें बाहर ले जाने के लिए है। वहाँ लिनक्स/यूनिक्स में यह करने के लिए एक कॉम्पैक्ट रास्ता नहीं है?

उत्तर

16

फ़ाइलें एक विशेष अभिव्यक्ति मिलान सभी फाइलों को हिलाने की विशिष्ट तरीका

mv 1/*.masked targetDir 

.. जहां TARGETDIR हो सकता है

तो है आप

की तरह तो आप कर सकते हैं निर्देशिका 1,2,3 से ले जाने के लिए कुछ चाहते हैं
mv */*.masked targetDir 

या, यदि आप विशेष रूप से गिने निर्देशिकाओं से ले जाना चाहते, तो आप सिर्फ

mv [0-9][0-9]/*.masked targetDir 
की तरह कुछ चला सकते हैं
5

कई यूनिक्स के गोले के रूप में अच्छी तरह से समर्थन करते हैं पथ की सूची हिस्से में * ऑपरेटर। कम से कम पार्टी और zsh में निम्नलिखित काम करता है:

ls */*.masked 

यह फ़ाइलों है कि एक निर्देशिका गहरी .masked में खत्म हो के सभी वापस आ जाएगी।

तो उन्हें स्थानांतरित करने:

mv */*.masked destination 
संबंधित मुद्दे