मैं इस मामले में क्या करता हूं, कि मेरे पास एक अधूरा tarसंग्रह है, मैं संग्रह में फ़ाइलों की एक सूची बनाता हूं:
tar tf archive.tar | sed -e '/\/$/d' -e x -e '/^$/d' >files-done
sedइन निर्देशिकाओं, नहीं फ़ाइलें हैं, और हम निर्देशिका फिर से डंप करने के लिए और केवल उन्हीं निर्देशिका में उन फ़ाइलों को छोड़, पहले tar संग्रह में पहले से ही है कि हम चाहते हैं: आदेश उन सभी लाइनों, स्लैश है हटा देता है। इसके अलावा, हम sedअंतिम फ़ाइल नाम को हटाने देते हैं , क्योंकि इसे बहुत आंशिक रूप से केवल डंप किया गया है, इसलिए हम इसे फिर से संग्रहीत करेंगे।
फिर बस files-doneएक नई tarकमांड के लिए -X विकल्प के माध्यम से सूची पास करें :
tar cfvX archive2.tar files-done SOURCEDIR
नए टार कमांड पर एक अलग आउटपुट फ़ाइलनाम का उपयोग करना सुनिश्चित करें, या आप अपने आंशिक संग्रह को अधिलेखित कर देंगे। भ्रष्ट टार आर्काइव को सीधे जोड़ने की कोशिश न करें।