7-Zip是一個支持7z(它實現了LZMA壓縮算法,具有非常高的壓縮比)、LZMA2、XZ、ZIP、Zip64、CAB、ARJ、GZIP、BZIP2、TAR、CPIO、RPM、ISO、大多數文件系統映像和DEB格式的文件歸檔器。RAR格式由于不是免費許可,已經被刪除了。 文內含長段代碼可復制可往左滑,希望對大家有幫助!
環 境
-
centos7.7 Minimal
-
p7zip-16.02
安 裝
默認Centos7沒有安裝p7zip安裝包,默認源里面也沒有這個安裝包,需要安裝epel源才能安裝p7zip安裝包。
[root @localhost~]# yum -y install epel-release
[root @localhost~]# yum -y install p7zip p7zip-plugins
使用方法
7z命令提供的函數字母與命令行選項類似,但使用時不使用 -。這些參數字母告訴命令它需要執行的函數。
壓縮文件
創建一個壓縮包使用 a參數
創建一個7z格式的壓縮包:
[root @localhost~]# 7z a files.7z file1.txt file2.txt file3.txt file4.txt
7-Zip [ 64] 16.02: Copyright (c) 1999- 2016Igor Pavlov : 2016- 05- 21
p7zip Version 16.02(locale=en_US.UTF- 8,Utf16=on,HugeFiles=on, 64bits, 1CPU Intel(R)Core(TM)i5-8400 CPU @ 2.80 GHz( 906EA) ,ASM,AES-NI)
Scanning the drive:
4 files, 0 bytes
Creating archive: files.7z
Items to compress: 4
Files read from disk: 0
Archive size: 143 bytes( 1KiB)
Everything is Ok
執行完命令,查看一下是否已經創建7z格式的壓縮包
創建一個包含目錄的壓縮包:
[root @localhost~]# 7z a gpg.7z .gnupg/
7-Zip [ 64] 16.02: Copyright (c) 1999- 2016Igor Pavlov : 2016- 05- 21
p7zip Version 16.02(locale=en_US.UTF- 8,Utf16=on,HugeFiles=on, 64bits, 1CPU Intel(R)Core(TM)i5-8400 CPU @ 2.80 GHz( 906EA) ,ASM,AES-NI)
Scanning the drive:
2 folders, 5 files, 8280 bytes( 9KiB)
Creating archive: gpg.7z
Items to compress: 7
Files read from disk: 2
Archive size: 4157 bytes( 5KiB)
Everything is Ok
[root@localhost ~]#
7zip還可以壓縮、解壓縮其他格式的壓縮包。比如:創建一個.zip格式的壓縮包。
[root @localhost~]# 7z a files.zip file{ 1.. 4}.txt
7-Zip [ 64] 16.02: Copyright (c) 1999- 2016Igor Pavlov : 2016- 05- 21
p7zip Version 16.02(locale=en_US.UTF- 8,Utf16=on,HugeFiles=on, 64bits, 1CPU Intel(R)Core(TM)i5-8400 CPU @ 2.80 GHz( 906EA) ,ASM,AES-NI)
Scanning the drive:
4 files, 0 bytes
Creating archive: files.zip
Items to compress: 4
Files read from disk: 4
Archive size: 542 bytes( 1KiB)
Everything is Ok
列出壓縮包里面的內容
列出壓縮包的內容使用 l參數:
[root @localhost~]# 7z l gpg.7z
7-Zip [ 64] 16.02: Copyright (c) 1999- 2016Igor Pavlov : 2016- 05- 21
p7zip Version 16.02(locale=en_US.UTF- 8,Utf16=on,HugeFiles=on, 64bits, 1CPU Intel(R)Core(TM)i5-8400 CPU @ 2.80 GHz( 906EA) ,ASM,AES-NI)
Scanning the drive forarchives:
1 file, 4157 bytes( 5KiB)
Listing archive: gpg.7z
--
Path = gpg.7z
Type = 7z
Physical Size = 4157
Headers Size = 278
Method = LZMA2: 12k
Solid = +
Blocks = 1
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2020- 01- 0418: 24: 05D.... 00.gnupg
2020- 01- 0418: 22: 36D.... 00.gnupg/ private-keys-v1.d
2020- 01- 0418: 24: 48....A 00.gnupg/S.gpg-agent
2020- 01- 0418: 22: 36....A 00.gnupg/pubring.gpg
2020- 01- 0418: 24: 05....A 00.gnupg/secring.gpg
2020- 01- 0418: 22: 36....A 76803879.gnupg/gpg.conf
2020- 01- 0418: 24: 52....A 600.gnupg/random_seed
------------------- ----- ------------ ------------ ------------------------
2020- 01- 0418: 24: 52828038795files, 2folders
解壓文件
使用 e來解壓文件,解壓所有文件到當前目錄。(不推薦使用)
[root @localhosttest]# 7z e gpg.7z
7-Zip [ 64] 16.02: Copyright (c) 1999- 2016Igor Pavlov : 2016- 05- 21
p7zip Version 16.02(locale=en_US.UTF- 8,Utf16=on,HugeFiles=on, 64bits, 1CPU Intel(R)Core(TM)i5-8400 CPU @ 2.80 GHz( 906EA) ,ASM,AES-NI)
Scanning the drive forarchives:
1 file, 4157 bytes( 5KiB)
Extracting archive: gpg.7z
--
Path = gpg.7z
Type = 7z
Physical Size = 4157
Headers Size = 278
Method = LZMA2: 12k
Solid = +
Blocks = 1
Everything is Ok
Folders: 2
Files: 5
Size: 8280
Compressed: 4157
可以看到所有文件都解壓到當前目錄了。
現在使用 x參數解壓文件看一下。
[root @localhosttest]# 7z x gpg.7z
7-Zip [ 64] 16.02: Copyright (c) 1999- 2016Igor Pavlov : 2016- 05- 21
p7zip Version 16.02(locale=en_US.UTF- 8,Utf16=on,HugeFiles=on, 64bits, 1CPU Intel(R)Core(TM)i5-8400 CPU @ 2.80 GHz( 906EA) ,ASM,AES-NI)
Scanning the drive forarchives:
1 file, 4157 bytes( 5KiB)
Extracting archive: gpg.7z
--
Path = gpg.7z
Type = 7z
Physical Size = 4157
Headers Size = 278
Method = LZMA2: 12k
Solid = +
Blocks = 1
Everything is Ok
Folders: 2
Files: 5
Size: 8280
Compressed: 4157
可以看到解壓出來的文件,按照原來文件的目錄形式解壓出來的。
更新壓縮包
一段時間之后,需要將一些新文件添加到文件夾中,并且希望將他們添加到壓縮包里面,可以不用創建一個新的壓縮包,只需要更新現有的壓縮包就可以。
首先將test目錄壓縮
[root @localhosttest]# 7z a files.7z test/
7-Zip [ 64] 16.02: Copyright (c) 1999- 2016Igor Pavlov : 2016- 05- 21
p7zip Version 16.02(locale=en_US.UTF- 8,Utf16=on,HugeFiles=on, 64bits, 1CPU Intel(R)Core(TM)i5-8400 CPU @ 2.80 GHz( 906EA) ,ASM,AES-NI)
Scanning the drive:
1 folder, 4 files, 0 bytes
Creating archive: files.7z
Items to compress: 5
Files read from disk: 0
Archive size: 158 bytes( 1KiB)
Everything is Ok
在test文件夾中創建幾個文件,然后再更新壓縮包:
[root @localhosttest]# touch test/file{ 5.. 10}.txt
[root @localhosttest]# 7z u files.7z test/
7-Zip [ 64] 16.02: Copyright (c) 1999- 2016Igor Pavlov : 2016- 05- 21
p7zip Version 16.02(locale=en_US.UTF- 8,Utf16=on,HugeFiles=on, 64bits, 1CPU Intel(R)Core(TM)i5-8400 CPU @ 2.80 GHz( 906EA) ,ASM,AES-NI)
Open archive: files.7z
--
Path = files.7z
Type = 7z
Physical Size = 158
Headers Size = 158
Solid = -
Blocks = 0
Scanning the drive:
1folder, 10files, 0bytes
Updating archive: files.7z
Items to compress: 7
Files read from disk: 0
Archive size: 186bytes ( 1KiB)
Everything is Ok
查看一下是否已經添加文件。
[root @localhosttest]# 7z l files.7z
7-Zip [ 64] 16.02: Copyright (c) 1999- 2016Igor Pavlov : 2016- 05- 21
p7zip Version 16.02(locale=en_US.UTF- 8,Utf16=on,HugeFiles=on, 64bits, 1CPU Intel(R)Core(TM)i5-8400 CPU @ 2.80 GHz( 906EA) ,ASM,AES-NI)
Scanning the drive forarchives:
1 file, 186 bytes( 1KiB)
Listing archive: files.7z
--
Path = files.7z
Type = 7z
Physical Size = 186
Headers Size = 186
Solid = -
Blocks = 0
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2020- 03- 1114: 24: 54D.... 00test
2020- 03- 1114: 18: 22....A 00test/file1.txt
2020- 03- 1114: 24: 54....A 00test/file10.txt
2020- 03- 1114: 18: 22....A 00test/file2.txt
2020- 03- 1114: 18: 22....A 00test/file3.txt
2020- 03- 1114: 18: 22....A 00test/file4.txt
2020- 03- 1114: 24: 54....A 00test/file5.txt
2020- 03- 1114: 24: 54....A 00test/file6.txt
2020- 03- 1114: 24: 54....A 00test/file7.txt
2020- 03- 1114: 24: 54....A 00test/file8.txt
2020- 03- 1114: 24: 54....A 00test/file9.txt
------------------- ----- ------------ ------------ ------------------------
2020- 03- 1114: 24: 540010files, 1folders
總 結
本文至此結束,7z格式的壓縮比例比ZIP格式的壓縮比例高30%-50%。