分享幾個常用的7-Zip 壓縮與解壓縮命令 - The Will Will Web
文章推薦指數: 80 %
注意:7-Zip 並非使用Windows 的system wildcard parser,他並不會真的去比對有沒有這些系統檔案,而是傳入字串到 7z 命令中,讓7-Zip 去比對所有檔案!
←執行Docker容器可使用dumb-init或tini改善程序優雅結束的問題
自製編譯器不求人:快速上手ANTLR與.NET開發環境設定→
我們最近幾年幾乎所有案子都導入CI/CD,把所有能自動化的工作全部都指令化,所以只要公司需要開發時期用的測試機,或是客戶需要安裝主機,通常都可以在10分鐘內搞定所有環境與設定。
今天這篇文章我要來分享幾個常用的7-Zip命令與參數,因為7-Zip在第一次使用7z命令的時候,他的使用方式比較沒那麼直覺,所以寫成文章供未來查表參考之用。
安裝7-Zip工具
一如往常的,我幾乎都使用Chocolatey進行安裝7-Zip套件:
chocoinstall7zip-y
請注意要輸入7zip才是正確的套件名稱喔,這裡的7與zip中間不能加上Dash符號(-)!
你也可以用微軟最近推出的WindowsPackageManagerCLI安裝7-Zip工具
wingetinstall7zip
WindowsPackageManager1.0|WindowsCommandLine
常用的壓縮檔案命令與參數
壓縮整個資料夾,而且壓縮檔案中的第一層就是該資料夾
這意味著壓縮檔中第一層目錄中沒有檔案,只有一個資料夾!
會這樣壓縮,通常是因為「解壓縮的人」經常會使用「解壓縮到這裡」的方式進行解壓縮,如果他把壓縮檔放在「桌面」上,解壓縮的時候就會看到桌面上只有一個檔案,看起來比較乾淨。
壓縮dir1\資料夾下所有檔案,而且壓縮檔案中會看到dir1這個資料夾!
7za"dir1.zip""dir1\"
如果你用以下命令壓縮,將會在壓縮檔中看到dir1與dir2資料夾等路徑!
7za"dir1.zip""dir1\dir2\"
7-Zip預設會壓縮該目錄與所有子目錄的所有檔案!
如果要壓縮成*.7z格式,不用特別下參數,直接設定好壓縮檔的副檔名即可,例如:
7za"dir1.7z""dir1\"
注意:7-Zip支援*.rar的解壓縮,但不能使用RAR格式進行,因為RAR壓縮格式有專利保護!
壓縮整個資料夾,而且壓縮檔案中第一層就是該資料夾下所有檔案與子資料夾
我個人比較喜歡這樣壓縮檔案,許多雲端平台在上傳檔案部署的時候,也會要求要用這種方式壓縮才能正常部署。
壓縮dir1\資料夾下所有檔案,壓縮檔案不會看到dir1這個資料夾,只會看到裡面的檔案與子資料夾!
7za"dir1.zip""dir1\*"
如果你用以下命令壓縮,將會看不到dir1與dir2資料夾!
7za"dir1.zip""dir1\dir2\*"
壓縮整個資料夾,並且保留現有檔案的完整路徑
由於7-Zip壓縮過的檔案不會保留「磁碟代號」,你唯一能做的只能保留「路徑」部份而已。
你可以先進入磁碟的根目錄,然後用上述第1種方法來壓縮檔案:
CD/DG:\
7za"dir2.zip""sub1\dir1\dir2"
只壓縮整個資料夾下的特定檔案類型
如果要壓縮限定特定類型的檔案,可以先加上-r參數,再加上不同的檔名樣式(FilePatterns)就可以找出檔案並加入壓縮檔:
7za"dir1.zip""dir1\"-r"dir1\*.aspx"
7za"dir1.zip""dir1\"-r"dir1\*.aspx""dir1\*.dll"
如果要排除特定類型的檔案不要進壓縮檔,可以這樣寫:
7zadir1.zip"dir1\""-xr!*.pdb""-xr!web.config"
將目前資料夾下的所有檔案壓縮到上一層目錄
如果你想壓縮當前目錄,但是壓縮檔不要出現在本資料夾,可以這樣寫:
7za"..\dir1.zip"
不加上任何參數,預設就是把當前目錄全部都壓縮起來,但請記得壓縮檔不要放在當前目錄下!
常用的解壓縮檔案命令與參數
解壓縮到當前目錄
請確保不會弄亂你的資料夾才能用這個方法,因為解出來的東西會跟壓縮檔放在一起!
7zx"dir1.zip"
解壓縮到指定輸出目錄
7zx"dir1.zip"-o"dir1"
請記得習慣在-o參數後面加上"雙引號,這樣就可以確保資料夾路徑中有空白字元也可以正常運作!
7zx"dir1.zip"-o"C:\ProgramFiles\"
注意:在-o與Path中間不能有任何空白字元!
只解壓縮特定檔案類型到指定輸出目錄
以下這個解壓縮命令會保留這些檔案的路徑在指定輸出目錄!
7zx"dir1.zip"-o"dir1"-r"*.dll"
注意:7-Zip並非使用Windows的systemwildcardparser,他並不會真的去比對有沒有這些系統檔案,而是傳入字串到7z命令中,讓7-Zip去比對所有檔案!
擷取特定檔案類型到指定輸出目錄
這裡不說「解壓縮」而說「擷取」是因為7-Zip有個參數e就是Extract(擷取)的意思。
這個參數最大的特點就是【取出的檔案不會保留壓縮檔中的目錄結構】,專門用來讓你取出壓縮檔案中的一個或多個檔案。
以下這個擷取命令會取出所有*.js檔案到指定輸出目錄!
7ze"dir1.zip"-o"dir1"-r"*.js"
如果壓縮檔中檔案很多,很有可能會遇到存在於不同目錄,但是檔名相同的狀況,此時就會出現檔名衝突問你要不要覆蓋的提示。
如果不想提示直接覆蓋,可以加上-y參數:
7ze"dir1.zip"-o"dir1"-r"*.dll"-y
解壓縮時略過壓縮檔中的第一層目錄並指定輸出目錄
7-Zip不像tar有--strip-components=這種強大的進階用法,所以使用上比較沒那麼靈活,需要搭配批次檔進行實作!
如果是PowerShell的話,可以直接這樣執行:
7zx.\MyWebsite.zip
cd"MyWebsite"
mv"*""C:\Inetpub\wwwroot"
cd..
rmdir"MyWebSite"
如果是CommandPrompt的話,建議安裝Chocolatey上有個UnxUtils套件,裡面有超多好用的Linux常見命令的Windows版本,其中當然包含了mv命令!
chocoinstallunxutils-y
其他7-Zip進階用法
壓縮檔案時包含解壓縮密碼
壓縮的時候設定一個密碼(-p),解壓縮檔案的時候必須輸入!
7za"dir1.zip""dir1/"-p"1q2w3e4r"
壓縮的時候設定一個密碼(-p),並且將壓縮檔的Header資訊一併加密,也就是連檔名都一起加密,開啟壓縮檔的時候就要先輸入密碼才知道內容!(僅支援*.7z壓縮檔格式)
7za"dir1.7z""dir1/"-p"1q2w3e4r"-mhe
解壓縮一個加密過的壓縮檔到指定輸出目錄
7zx"dir1.7z"-o"dir1/"-p"1q2w3e4r"
列出所有檔案清單
我們在自動化的過程中可能會需要先知道壓縮檔中有什麼檔案,此時可以利用7z的l(List)命令達成這個目的。
7zl"dir1.zip"
顯示壓縮檔中完整的技術資訊
你可以從中看出每個檔案的完整資訊,包含CRC與各種檔案屬性的細節,非常Geek的內容
7zl"dir1.zip"-slt
連同壓縮NTFS的alternatestreams資訊到壓縮檔中(-sns)
我在2008年有介紹過這個東西▶介紹好用工具:Streams讓你瞭解神秘的NTFS檔案系統
壓縮檔案時包含NTFSAlternateStreams
7zaa.wim-sns*.txt
7-Zip解壓縮的時候預設就會包含NTFSAlternateStreams到檔案中
7zxa.wim
不想讓7-Zip解壓縮的時候包含NTFSAlternateStreams可以加上-sns參數
7zxa.wim-sns-
列出壓縮檔案內容時包含NTFSAlternateStreams資訊(加上-sns參數)
7zla.wim-sns
相關連結
7-Zip
7-Zip繁體中文版官方網站
7-ZipCommandLineCommands
相關文章
分享幾個常用的7-Zip壓縮與解壓縮命令
我們最近幾年幾乎所有案子都導入CI/CD,把所有能自動化的工作全部都指令化,所以只要公司需要開發時期用的測試機,或是客戶需要安裝主機,通常都可以在10分鐘內搞定所有環境與設定。
今天這篇文章我要來
透過7-Zip壓縮ZIP檔案時須注意中文檔名無法正確解壓縮的問題
昨天在授課的時候,由於課堂上提供給學員的壓縮檔案中目錄名稱與檔案名稱有中文字的關係,導致全班有3位學員解壓縮之後這些目錄與檔案全部呈現亂碼,無法開啟與閱讀。
經過一番研究之後發現,原來7-Zip
如何利用7-zip設定自動解壓縮並解壓縮後自動啟動程式
我去年有弄一個WinForm的案子,案子完成後要給客戶安裝檔,程式還蠻簡單的,但除了主執行檔外,還有包括幾個相關的檔案,因為我不打算用SetupProject進行部署,而想直接做成「綠色軟體...
工商服務(廣告)
每月文章
2022
八月(10)
七月(11)
六月(4)
五月(10)
四月(5)
三月(9)
二月(9)
一月(15)
2021
十二月(12)
十一月(5)
十月(6)
九月(13)
八月(16)
七月(13)
六月(13)
五月(7)
三月(1)
二月(1)
2020
十二月(3)
十一月(1)
十月(3)
九月(7)
八月(7)
七月(9)
六月(2)
五月(5)
三月(4)
二月(5)
一月(4)
2019
十二月(7)
十一月(2)
十月(5)
九月(1)
六月(3)
四月(4)
三月(3)
二月(7)
一月(12)
2018
十二月(3)
十一月(1)
十月(4)
九月(12)
八月(4)
六月(2)
五月(3)
四月(6)
二月(1)
一月(2)
2017
十二月(2)
十月(3)
九月(4)
七月(1)
六月(1)
五月(1)
四月(1)
二月(3)
一月(4)
2016
十二月(4)
十一月(1)
十月(1)
九月(4)
八月(3)
七月(2)
五月(1)
四月(1)
三月(3)
二月(3)
一月(2)
2015
十二月(6)
十一月(4)
十月(3)
九月(5)
八月(1)
七月(4)
六月(2)
五月(3)
四月(1)
三月(1)
二月(3)
一月(2)
2014
十二月(3)
十一月(2)
十月(3)
九月(3)
八月(1)
七月(4)
六月(2)
五月(4)
四月(5)
三月(4)
二月(1)
一月(7)
2013
十二月(1)
十一月(8)
十月(1)
九月(2)
八月(4)
七月(5)
六月(8)
五月(9)
四月(8)
三月(10)
二月(9)
一月(10)
2012
十二月(4)
十一月(6)
十月(6)
九月(4)
八月(5)
七月(10)
六月(5)
五月(6)
四月(10)
三月(12)
二月(1)
一月(6)
2011
十二月(3)
十一月(7)
十月(8)
九月(14)
八月(15)
七月(10)
六月(10)
五月(11)
四月(11)
三月(13)
二月(14)
一月(13)
2010
十二月(13)
十一月(10)
十月(16)
九月(17)
八月(12)
七月(22)
六月(15)
五月(11)
四月(14)
三月(17)
二月(17)
一月(26)
2009
十二月(16)
十一月(18)
十月(18)
九月(23)
八月(20)
七月(26)
六月(24)
五月(21)
四月(26)
三月(30)
二月(27)
一月(26)
2008
十二月(30)
十一月(31)
十月(31)
九月(29)
八月(31)
七月(31)
六月(30)
五月(30)
四月(31)
三月(31)
二月(29)
一月(33)
2007
十二月(31)
十一月(37)
十月(13)
文章分類
.Net
(223)
.NETCore
(57)
Accessibility
(3)
Angular
(25)
AngularJS
(11)
ASP.NET
(223)
ASP.NET5
(3)
ASP.NETBlazor
(1)
ASP.NETCore
(37)
ASP.NETIdentity
(2)
ASP.NETMVC
(105)
ASP.NETWebAPI
(13)
AzureDevOps
(33)
C#
(127)
CloudComputing
(4)
CSS
(29)
DevOps
(22)
Docker
(28)
EntityFramework
(23)
Git
(31)
Golang
(2)
HTML5
(8)
IIS
(103)
Java
(9)
JavaScript
(108)
Jenkins
(7)
Kubernetes
(15)
LINQ
(36)
Linux
(111)
MicroK8s
(7)
MicrosoftAzure
(41)
MySQL
(15)
Office
(49)
Office365
(28)
Oracle
(10)
PHP
(25)
Scrum
(1)
Security
(65)
SQLServer
(126)
Subversion
(35)
SystemCenter
(2)
TFS
(6)
TFS2010
(10)
Tips
(189)
UnitTesting
(10)
Usability
(1)
VBA
(5)
VisualBasic
(5)
VisualStudio
(122)
VisualStudio11
(2)
VisualStudio2012
(10)
VisualStudio2013
(4)
VS2010Tips
(23)
Web
(172)
WebMatrix
(8)
Windows
(43)
Windows8
(14)
WindowsAzure
(18)
WindowsPhone7
(14)
介紹好用工具
(223)
心得分享
(88)
多奇快訊
(9)
系統管理
(365)
前端工程研究
(20)
專案管理
(8)
團隊合作
(9)
網路管理
(21)
專業證照
延伸文章資訊
- 17-Zip壓縮與解壓縮檔案@ 軟體使用教學 - 隨意窩
1.開啟檔案總管,選擇要壓縮的檔案或資料夾,按滑鼠右鍵,點選「7-Zip」,再點選「加入”軟體教學7z”」,7-Zip會自動進行壓縮。 · 2.正在進行壓縮。 · 3.壓縮完成的檔案如圖示 ...
- 2完全免費的WinRAR替代! 最新7-Zip教學和檔案壓縮介紹。
如何使用7zip將檔案壓縮到最小 · 首先按右鍵點擊要壓縮的文件,然後選擇7-Zip- >加入壓縮檔(Add to archive) · 設置7zip壓縮選項: 壓縮格式選7z, 壓縮層級選極緻...
- 3【Windows 必裝軟體】7-Zip 壓縮傳收檔案好幫手 - 3C新報
March 23, 2019 by 嚴立群 Tagged: 7-Zip, zip, 壓縮軟體, 解壓縮3C, Windows, 會員專區, 軟體、系統 ... 當你在便利商店買了「一大堆東西」要...
- 4分享幾個常用的7-Zip 壓縮與解壓縮命令 - The Will Will Web
注意:7-Zip 並非使用Windows 的system wildcard parser,他並不會真的去比對有沒有這些系統檔案,而是傳入字串到 7z 命令中,讓7-Zip 去比對所有檔案!
- 5[下載] 7-Zip v22.01 免費壓縮軟體-使用教學(繁體中文版)
如果公司MIS 還在幫你灌沒註冊的WinZIP 給你用,趕快把他換掉改裝7-Zip吧! 7-zip 可以支援各種常見的壓縮黨格式,可壓縮成包含7z, XZ, BZIP2, GZIP, TAR, ...