मुझे एक संकुचित cpio फ़ाइल के रूप में एक यूनिक्स सॉफ्टवेयर वितरण प्राप्त हुआ है। फ़ाइलों को निकालने के लिए सबसे अच्छा कमांड क्या है?
मुझे एक संकुचित cpio फ़ाइल के रूप में एक यूनिक्स सॉफ्टवेयर वितरण प्राप्त हुआ है। फ़ाइलों को निकालने के लिए सबसे अच्छा कमांड क्या है?
जवाबों:
gzip -cd foo.cpio.gz | cpio -idmv
mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames
हालांकि यह एक पुराना प्रश्न है, यह Google पर उच्च दिखाता है, इसलिए मैंने सोचा कि मैं इसे अपडेट कर सकता हूं। जब तक आप अपनी मशीन पर महत्वपूर्ण सिस्टम फ़ाइलों को अधिलेखित करने का इरादा रखते हैं, मैं सामान्य रूप से स्वीकृत उत्तर से सहमत हूं, लेकिन आपको "- पूर्ण-फ़ाइल नाम" जोड़ना चाहिए। इसके अलावा, व्यक्तिगत रूप से, मैं "gzip -cd" या "gunzip -c" पर "zcat" पसंद करता हूं।
अंत में, ध्यान दें कि आपको cpio को रूट के रूप में चलाने की आवश्यकता है (उदाहरण के लिए sudo) यदि आप एक रूट फाइल सिस्टम निकाल रहे हैं जिसमें डिवाइस नोड्स हैं।
इस विकिपीडिया पेज पर cpio
कुछ अच्छे नोट्स हैं।
अधिक जानकारी के लिए, cpio
मैनुअल को देखें ।
उसी विकिपीडिया पृष्ठ का एक लिंक अभिलेखागार के साथ तुलना पर चर्चा करता हैtar
।
और, यहां प्रारूप के साथ उपयोग करनेcpio
tar
का एक उदाहरण है ।
उदाहरण के लिए, वर्तमान निर्देशिका में / etc / httpd / की संग्रहीत सामग्री को निकालने के लिए, उपनिर्देशिकाएँ बनाना ।/etc/httpd/
mkdir restored-etc-httpd
cd restored-etc-httpd
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"
स्वीकृत उत्तर और मैट दोनों मेरे लिए मददगार थे, लेकिन तीन विवरणों के कारण मैं कुछ समय के लिए रुका हुआ था:
--no-absolute-filenames
को कमांड लाइन पर पैटर्न से पहले होना चाहिए/
फ़ाइल नाम से अग्रणी को हटा देता है , इसलिए मिलान पैटर्न को अग्रणी को छोड़ना होगा/
man cpio
क्या देखा?