2016年10月24日 星期一

在command line用gzip及p7zip來壓縮檔案

        印象中之前對於檔案壓縮沒什麼特別的感覺,無非就是把檔案無非就是把檔案壓得稍微小一點,能夠不超過硬碟容量就夠了,而且現在的硬碟動不動500G、1T起跳,似乎也沒這麼必要去壓縮了。

        到了實際的專案,客戶回報問題的時候,開發端會需要將運行環境的log抓下來de bug,這時候,如果一個log動輒幾百MB、甚至1G起跳的時候,要抓下來勢必會受到網路連線的影響,於是我們需要去壓縮,讓我訝異的是,現在的壓縮率到達了一個非常高的程度。

        今天公司的同事介紹兩款用command line壓縮的方式。

        gzip
     
        幾乎每個linux環境都有內建,而使用方法為:

gzip -k file.txt

        在目錄下面將file.txt改為該目錄下的目標,就完成了,而-k的用意是壓縮之後同時也留住壓縮前的檔案,如果沒有-k的話,是只會留下壓縮後的.gz檔的。

        p7zip

        這個壓縮套件是由獨立開發者Igor Pavlov開源出來的command-line版7zip,使用方法為:

7z a file.7z file.txt

        p7zip會比gzip還要花上更多的時間去壓縮檔案,但是會壓縮率比gzip也是高一大截,實際測試之後,一個834MB的log,透過gzip壓縮之後得到的檔案為5.3MB,而透過p7zip壓縮之後,更是能夠達到驚人的1.4MB,這部分也能做個取捨。

        是花更多的時間拿到很小的壓縮檔,或是省下壓縮檔案的時間得到一個相對沒這麼小的壓縮檔。

沒有留言:

張貼留言