2009-04-25 19 views
24

साथ व्यक्तिगत रूप से मैं कई निर्देशिका कि इस तरह दिखना है। तो अंततः हम इस तरह कुछ प्राप्त करने की उम्मीद करते हैं:कम्प्रेस एकाधिक फ़ाइलों Gzip

dir1/ 
    |_foo.gz 
    |_bar.gz 
dir2/ 
    |_qux.gz 
    |_bar.gz 

क्या ऐसा करने के लिए एक साधारण यूनिक्स तरीका है?

उत्तर

33
gzip */*.txt 

लेकिन प्रत्येक फ़ाइल के लिए एक्सटेंशन .txt.gz होगा, क्योंकि gzip मूल फ़ाइल नाम जानने के लिए इसका उपयोग करता है।

+7

बस स्पष्टीकरण के लिए यह स्पष्ट नहीं है: gzip असम्पीडित फ़ाइलों को स्वयं हटा देगा। – ypnos

+0

मूल को हटाने के लिए कोई तरीका नहीं है? मैं वर्तमान में -c ध्वज का उपयोग कर रहा हूं (gzip -9 -c style.css> style.css.gz) – ansiart

+0

देखें http://stackoverflow.com/questions/6258972/gzip-multiple-files-individually-and-keep- मूल-फाइल –

8

gzip -r dir1 dir2

+0

दिलचस्प; निश्चित रूप से सिग्विन संस्करण के साथ काम करता है। मुझे gzip पर लागू '-r' विकल्प से अवगत नहीं था, लेकिन यह आश्चर्यजनक नहीं है, या तो। –

10

अगर आप उप-निर्देशिका है निम्नलिखित भी काम करेंगे। जैसे dir1/dir2 /.../ foo.txt

find . -type f -name "*.txt" -exec gzip {} \; 
+1

आप 'gzip ./**/*। Txt' भी कर सकते हैं, जो वर्तमान में सभी निर्देशिकाओं में पुन: उपयोग करता है, सभी टेक्स्ट फ़ाइलों को gzipping, और मूल को हटाने। – thekingoftruth

संबंधित मुद्दे