मैं निम्नलिखित है मैं क्या करना चाहते हैं:
find . -maxdepth 6 (-name *.tar.gz -o -name bediskmodel -o -name src -o -name ciao -o -name heasoft -o -name firefly -o -name starlink -o -name Chandra) -prune -o -print| tar cvf somefile.tar --files-from=-
अर्थात सामान की एक पूरी बहुत कुछ बाहर करते हैं, केवल 6 उपनिर्देशिका गहराई तक लग रहे हैं, और फिर एक बार छंटाई किया जाता है, टार अप बाकी।xargs साथ खोजने के लिए और टार
मुश्किल नहीं है। पाइप (|) 100% काम करने से पहले थोड़ा सा काम करता है। अगर मैं टैर को बाहर कर देता हूं, तो मुझे वह मिलता है जो मैं (स्क्रीन पर) के बाद करता हूं। लेकिन एक बार जब मैं पाइप, और टैर शामिल करता हूं, तो यह सबकुछ टायर करता है, जिसमें सभी चीजें शामिल हैं जिन्हें मैंने अभी खोज में छोड़ दिया है।
मैंने कई अलग-अलग पुनरावृत्तियों की कोशिश की है:
-print0 | xargs -0 tar rvf somefile.tar
-print0 | xargs -0 tar rvf somefile.tar --null --files-from = -
-print0 | tar cvf somefile.tar --null -T -
तो मैं गलत क्या कर रहा हूं? मैंने पहले यह किया है; लेकिन अब यह सिर्फ मुझे ग्रे बाल दे रहा है।
मेरा मानना है कि आप '* .tar.gz' आसपास उद्धरण से बचने यह' द्वारा पहले 'के लिए पारित bash' विस्तार किया जा रहा है की जरूरत है find' – drevicko