linux - सभी उप-निर्देशिकाओं में सभी फ़ाइलों को बैश में एक संपीड़ित फ़ाइल में कैसे घुमाएं




bash shell (2)

संभावित डुप्लिकेट:
निर्देशिकाओं का एक सेट gzipping और एक टैर संपीड़ित फ़ाइल बनाने

यह पोस्ट वर्णन करता है कि निर्देशिका संरचना के भीतर प्रत्येक फ़ाइल को अलग-अलग कैसे गजिपाना है। हालांकि, मुझे कुछ अलग करने की ज़रूरत है। मुझे एक निश्चित निर्देशिका के तहत सभी फ़ाइलों के लिए एक बड़ी gzip फ़ाइल बनाने की आवश्यकता है। मुझे संपीड़ित फ़ाइल (उदाहरण के लिए, files.gz) के लिए आउटपुट फ़ाइल नाम निर्दिष्ट करने में सक्षम होना चाहिए और पुरानी संपीड़ित फ़ाइल फ़ाइल को ओवरराइट करना चाहिए यदि कोई पहले से मौजूद है।


@मिचहजेर की पोस्ट जीएनयू टैर के लिए काम करती है। अगर कोई इस पोस्ट को पाता है और उसे गैर GNU सिस्टम पर काम करने की ज़रूरत है, तो वे ऐसा कर सकते हैं:

tar cvf - folderToCompress | gzip > compressFileName

संग्रह का विस्तार करने के लिए:

zcat compressFileName | tar xvf -

बहुत सारे संपीड़न विधियां हैं जो रिकर्सली कमांड लाइन पर काम करती हैं और यह जानना अच्छा होता है कि अंतिम दर्शक कौन है।

यानी अगर इसे विंडोज़ चलाने वाले किसी व्यक्ति को भेजा जाना है तो ज़िप शायद सबसे अच्छा होगा:

zip -r file.zip folder_to_zip

unzip filenname.zip

अन्य लिनक्स उपयोगकर्ताओं या आपके स्वयं के टैर के लिए बहुत अच्छा है

tar -cvzf filename.tar.gz folder

tar -cvjf filename.tar.bz2 folder  # even more compression

#change the -c to -x to above to extract

किसी को टैर से सावधान रहना चाहिए और चीजों को कैसे निकाला जाता है / निकाला जाता है, उदाहरण के लिए यदि मैं दौड़ता हूं

cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd


pwd

/ घर / myusername

tar -xvzf passwd.tar.gz

यह / home / myusername / etc / passwd बना देगा

अनिश्चित अगर टैर के सभी संस्करण यह करते हैं:

 Removing leading `/' from member names





gzip