यूनिवर्सल एक्सट्रैक्टर्स


19

संग्रह / संपीड़न फ़ाइल स्वरूपों की बढ़ती संख्या के साथ , क्या उन सभी पर शासन करने के लिए एक एकल मुक्त / खुला स्रोत कमांड लाइन उपकरण है? शायद झंडे के लगातार / एकीकृत सेट के साथ कुछ? ( टार पर मेरे अनुकूल निहित संदर्भ पर ध्यान दें )

मैं एक बार उपनामों के एक सेट में चला गया था, जिसका मतलब था कि फ़ाइलों को tarअन्य बर्तनों के साथ कंप्रेसिंग / डी-कंप्रेस करने के कार्य को सरल बनाना , लेकिन मुझे अब यह नहीं मिल रहा है।

अद्यतन: मैं ज़िप फ़ाइलों को निकालने के लिए atoolउपयोग नहीं करने के unzipलिए कुछ कैसे कॉन्फ़िगर कर सकता हूं (जो स्पष्ट रूप से 4 जीबी से बड़ी फ़ाइलों को संभाल नहीं सकता है) और gunzipइसके बजाय उपयोग करने के लिए?

$ aunpack large_file.zip
error:  Zip file too big (greater than 4294959102 bytes)
Archive:  large_file.zip
warning [large_file.zip]:  1491344848 extra bytes at beginning or within zipfile
  (attempting to process anyway)
error [large_file.zip]:  start of central directory not found;
  zipfile corrupt.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)
aunpack: unzip ...: non-zero return-code

1
अभी तक एक और समाधान: packages.qa.debian.org/u/unp.html
frostschutz

@frostschutz। क्या आपको पता है कि कुछ भी है जो unpackअलग हो सकता है atool?
एमिलियो वाज़केज़-रीना

पता नहीं। जैसा कि इवान का जवाब दिखाता है, इस तरह का कार्यक्रम काफी तुच्छ है। आपके लिए जो भी काम हो उसका उपयोग करें। ज़िप फ़ाइलों को अनपैक करने के लिए, मेरी व्यक्तिगत प्राथमिकता है 7z
ठंढकुट्ज़

1
@ user815423426 मैंने आपके अद्यतन प्रश्न के लिए निर्देश मेरे मौजूदा उत्तर में जोड़ दिए हैं।
सुपरमैजिक

जवाबों:


18

मैं एटूल का उपयोग करता हूं । यह काम करता है। यह कई के साथ काम करता है, हालांकि सभी प्रारूप नहीं:

tar, gzip, bzip2, bzip, lzip, lzop, lzma, zip, rar, lha, arj, arc, p7zip आदि।

इन संपीड़न उपकरणों की अभी भी आवश्यकता है, हालांकि उनके लिए बस एक अंत अंत है।

मुझे विशेष रूप से alsयह कमांड प्रदान करता है जो किसी भी समर्थित संग्रह प्रारूप की सामग्री को सूचीबद्ध करता है।

मुख्य atoolकमांड अभिलेखागार निकालने के लिए अपने स्वयं के झंडे का उपयोग करता है (विशिष्ट अंतर्निहित निष्कर्षण उपकरण के लिए उपयुक्त झंडे को पारित करना)।

ओह, और यह कुछ वितरण की रिपॉजिटरी में है (फेडोरा मेरे मामले में, हालांकि जैसा कि मुझे याद है, जब मैंने उबंटू का उपयोग किया था तब यह उनके रिपोज में नहीं था। और मैं एक टारबॉल से स्थापित किया गया था।)।

रिपॉजिटरी पर अपडेट : एटोल निम्नलिखित वितरण के रिपॉजिटरी (केवल जारी किए गए वर्तमान रिलीज) में है:

  • फेडोरा
  • डेबियन (धन्यवाद @terdon, और, संभवतः, यह उबंटू की तरह व्युत्पन्न है)
  • Ubuntu (qed, और, संभवतः, मिंट की तरह डेरिवेटिव)
  • ओपन स्यूस
  • CentOS (और, संभवतः, RHEL)
  • आर्क लिनक्स

मुझे यकीन है कि अन्य हैं ... पूरी तरह से, सबसे आधुनिक वितरण।

अपडेट किए गए प्रश्न का उत्तर "ज़िप फाइल निकालने के लिए अनज़िप का उपयोग न करने के लिए मैं कैसे कुछ को कॉन्फ़िगर कर सकता हूं ... और इसके बजाय गनज़ का उपयोग करें" :

एटल कॉन्फिग फाइल को एडिट करें ~/.atoolrcऔर लाइन जोड़ें:

path_unzip /usr/bin/gunzip

अपने गनज़िप कार्यक्रम के लिए सही रास्ते के साथ।

संभावित चर की पूरी सूची के लिए मैन पेज देखें जिसे आप इस कॉन्फिग फ़ाइल में रख सकते हैं, जिनमें से बहुत सारे हैं । यदि गनज़िप के लिए आवश्यक कमांड लाइन विकल्प अनज़िप से भिन्न हैं, तो आपको स्वयं ही एटूल स्रोत (पर्ल) को संशोधित करना पड़ सकता है।


धन्यवाद। यह बहुत अच्छा लग रहा है। क्या आप जानते हैं कि, एक तरफ टारबॉल डाउनलोड करने में सक्षम होने के कारण, इसके लिए एक (गिट / बज़्र) भंडार है, या शायद इसके लिए कांटा है?
एमिलियो वाज़क्वेज़-रीना

इसके लिए एक git रेपो प्रतीत नहीं होता है। एक, कंपकंपी, सीवीएस रेपो: savannah.nongnu.org/cvs/?group=nool है । हालांकि, स्रोत टारबॉल में है और टूल पर्ल में लिखा गया है, इसलिए आपके द्वारा या किसी को भी जो आसानी से आग्रह करता है, आसानी से संशोधित हो सकता है।
सुपरमैजिक

1
@ user815423426 यह डेबियन रेपो में भी है।
terdon

9

यहां थोड़ा शेल फ़ंक्शन है जो कई संग्रह प्रकारों का ध्यान रखता है।

extract () {
    if [ ! -f "$1" ] ; then
        echo "'$1' does not exist."
        return 1
    fi

    case "$1" in
        *.tar.bz2)   tar xvjf "$1"   ;;
        *.tar.xz)    tar xvJf "$1"   ;;
        *.tar.gz)    tar xvzf "$1"   ;;
        *.bz2)       bunzip2 "$1"    ;;
        *.rar)       rar x "$1"      ;;
        *.gz)        gunzip "$1"     ;;
        *.tar)       tar xvf "$1"    ;;
        *.tbz2)      tar xvjf "$1"   ;;
        *.tgz)       tar xvzf "$1"   ;;
        *.zip)       unzip "$1"      ;;
        *.Z)         uncompress "$1" ;;
        *.xz)        xz -d "$1"      ;;
        *.7z)        7z x "$1"       ;;
        *.a)         ar x "$1"       ;;
        *)           echo "Unable to extract '$1'." ;;
    esac
}

मुझे इस फ़ंक्शन का मूल संस्करण कहीं ऑनलाइन मिला और arअभिलेखागार और एक्सज़ संपीड़ित tarअभिलेखागार निकालने के लिए इसे थोड़ा संशोधित किया ।


यह बहुत अच्छा लग रहा है। क्या यह बैश के लिए है?
एमिलियो वाज़क्वेज़-रीना

मैं केवल के साथ इस परीक्षण किया है bashऔर zsh, लेकिन यह साथ काम करना चाहिए shऔर साथ ही।

यह एक शेल फ़ंक्शन के लिए असाधारण रूप से सौंदर्यवादी रूप से मनभावन है। एक चेतावनी यह होगी कि आप यह सुनिश्चित करना चाहते हैं कि आपने सभी प्रासंगिक बायनेरिज़ को स्थापित कर लिया है, या उन पंक्तियों को हटा दें जिन्हें आपने स्थापित नहीं किया है।
bgvaughan

3

AVFS फाइल सिस्टम प्रस्तुत फाइल सिस्टम के एक दृश्य है, जहां हर संग्रह फ़ाइल (जैसे /path/to/foo.zip() एक निर्देशिका के रूप में पहुँचा जा सकता है ~/.avfs/path/to/foo/zip#इस उदाहरण के लिए)। AVFS सबसे आम संग्रह फ़ाइल स्वरूपों में केवल पढ़ने के लिए पहुँच प्रदान करता है।

mountavfs
cp -Rp ~/.avfs$PWD/large_file.zip\# extraction_directory

Avfs बाहरी सहायकों का उपयोग करता है, जिन्हें आसानी से फ़ाइलों को संपादित करके कॉन्फ़िगर किया जा सकता है /usr(दुर्भाग्य से वहाँ कोई रास्ता नहीं है 1.0 के रूप /usr/localमें आपके घर निर्देशिका में या आपके द्वारा फ़ाइलों को संपादित करने के लिए avfs 1.0 का उपयोग करने की आवश्यकता है /usr)। फ़ाइलों /usr/share/avfs/extfs/ext-uzipसे निपटने के लिए स्क्रिप्ट है .zip, यदि आप उपयोग नहीं करना चाहते हैं तो इसे बदल दें /usr/bin/unzip। आप इसके बजाय 7z का उपयोग करने में सक्षम हो सकते हैं: संपादन का प्रयास करें /usr/share/avfs/extfs/extfs.iniऔर लाइन ext-uzipको बदल दें u7z .zip

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.