前言
7zip是個免費的檔案壓縮程式,我想很多人應該也都使用過。不過我以前使用7zip的時候都是直接右鍵進行各種資料檔案壓縮和解壓縮,直到工作上有需求後才發現原來檔案其實也可以透過cmd下7zip的指令進行壓縮和解壓縮,查找到7zip的指令使用方式也很多樣,因此想把這次研究到的指令統整筆記起來。
7zip最常使用的功能肯定是壓縮與解壓縮了,因此這次主要介紹這兩個做法
壓縮檔案
壓縮檔案的指令是“a”:
7z a 壓縮後檔案名稱.zip 欲壓縮資料夾或檔案路徑
通常壓縮檔案的時候有些人會習慣加上密碼,使用的參數是“-p密碼”:
7z a archive.7z -p密碼 欲壓縮資料夾或檔案路徑
另外還有一個滿特別的參數有“-m”,可以指定壓縮方式和細節設定:
7z a 壓縮檔案名稱.zip -m指定壓縮方式
我設定過的做法是-m0=LZMA。“-m”後面跟著的第一位就是壓縮等級,這邊可以設定的選擇有{0|1|3|5|7|9},分別可以對應到7zip圖形使用者介面上的{Store|Fastest|Fast|Normal|Maximum|Ultra},這裡預設是5(Normal)。
後面“=LZMA”是設定資料壓縮的演算法,可以設定的有:Copy、Deflate、Deflate64、BZip2、LZMA、PPMd,能設定的方法比圖形使用者介面上的選擇多,演算法的差異我還沒有詳細研究過,只知道Deflate和LZMA都是無失真資料壓縮演算法,差別只在於Dictionary的方式不同。
不過我有找到一篇部落格是zip壓縮演算法的選擇,裡面有做使用不同演算法的結果比較,滿有趣的。如果之後有研究更多關於壓縮演算法的心得會在寫下來分享。
解壓縮檔案
解壓縮的指令是“e”、或“x”,差別在於使用“x”可以按照原本的資料結構:
7z e 欲解壓縮檔案名稱.zip7z x 欲解壓縮檔案名稱.zip
如果解壓縮的檔案有加上密碼的話,也要使用參數“-p密碼”來解壓檔案:
7z e 欲解壓縮檔案名稱.zip -p密碼7z x 欲解壓縮檔案名稱.zip -p密碼
解壓縮如果要指定路徑的話,則是使用參數“-o”:
7z e 欲解壓縮檔案名稱.zip -o指定路徑7z x 欲解壓縮檔案名稱.zip -o指定路徑
參數“-ao”,設定解壓縮是否要覆蓋:
7z e 欲解壓縮檔案名稱.zip -ao覆蓋模式7z x 欲解壓縮檔案名稱.zip -ao覆蓋模式
覆蓋模式共有4種,a|s|t|u,a是不提示直接覆蓋;s是直接跳過;t是自動將原存在檔案改名;u是自動將要解壓縮的檔案改名。
指令操作範例
其他更詳細的7zip指令參數寫法格式詳細說明可以參考官網:
結語
其實這篇從研究到寫下來也隔了兩三年,好多原本想紀錄的研究心得變得沒有太多印象。果然還是要邊研究邊整理筆記寫下來才會花比較少的時間。希望接下來能更有動力的把研究歷程和心得更新上來,除了做記錄之外也希望同時間在研究的人也能少走更多路,更容易找到自己想要的資訊。:)
最後附上7zip官方網站給大家參考: