天天看點

Centos7中使用7zip壓縮工具

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-2016 Igor Pavlov : 2016-05-21

p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,1 CPU Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz (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 (1 KiB)

Everything is Ok

執行完指令,檢視一下是否已經建立7z格式的壓縮包

Centos7中使用7zip壓縮工具Centos7中使用7zip壓縮工具

建立一個包含目錄的壓縮包:

[root@localhost ~]# 7z a gpg.7z .gnupg/

2 folders, 5 files, 8280 bytes (9 KiB)

Creating archive: gpg.7z

Items to compress: 7

Files read from disk: 2

Archive size: 4157 bytes (5 KiB)

[root@localhost ~]#

7zip還可以壓縮、解壓縮其他格式的壓縮包。比如:建立一個.zip格式的壓縮包。

[root@localhost ~]# 7z a files.zip file{1..4}.txt

Creating archive: files.zip

Files read from disk: 4

Archive size: 542 bytes (1 KiB)

列出壓縮包裡面的内容

列出壓縮包的内容使用l參數:

[root@localhost ~]# 7z l gpg.7z

Scanning the drive for archives:

1 file, 4157 bytes (5 KiB)

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-04 18:24:05 D.... 0 0 .gnupg

2020-01-04 18:22:36 D.... 0 0 .gnupg/private-keys-v1.d

2020-01-04 18:24:48 ....A 0 0 .gnupg/S.gpg-agent

2020-01-04 18:22:36 ....A 0 0 .gnupg/pubring.gpg

2020-01-04 18:24:05 ....A 0 0 .gnupg/secring.gpg

2020-01-04 18:22:36 ....A 7680 3879 .gnupg/gpg.conf

2020-01-04 18:24:52 ....A 600 .gnupg/random_seed

2020-01-04 18:24:52 8280 3879 5 files, 2 folders

解壓檔案

使用e來解壓檔案,解壓所有檔案到目前目錄。(不推薦使用)

[root@localhost test]# 7z e gpg.7z

Extracting archive: gpg.7z

Folders: 2

Files: 5

Size: 8280

Compressed: 4157

可以看到所有檔案都解壓到目前目錄了。

現在使用x參數解壓檔案看一下。

[root@localhost test]# 7z x gpg.7z

可以看到解壓出來的檔案,按照原來檔案的目錄形式解壓出來的。

更新壓縮包

一段時間之後,需要将一些新檔案添加到檔案夾中,并且希望将他們添加到壓縮包裡面,可以不用建立一個新的壓縮包,隻需要更新現有的壓縮包就可以。

首先将test目錄壓縮

[root@localhost test]# 7z a files.7z test/

1 folder, 4 files, 0 bytes

Items to compress: 5

Archive size: 158 bytes (1 KiB)

在test檔案夾中建立幾個檔案,然後再更新壓縮包:

[root@localhost test]# touch test/file{5..10}.txt

[root@localhost test]# 7z u files.7z test/

Open archive: files.7z

Path = files.7z

Physical Size = 158

Headers Size = 158

Solid = -

Blocks = 0

1 folder, 10 files, 0 bytes

Updating archive: files.7z

Archive size: 186 bytes (1 KiB)

檢視一下是否已經添加檔案。

[root@localhost test]# 7z l files.7z

1 file, 186 bytes (1 KiB)

Listing archive: files.7z

Physical Size = 186

Headers Size = 186

2020-03-11 14:24:54 D.... 0 0 test

2020-03-11 14:18:22 ....A 0 0 test/file1.txt

2020-03-11 14:24:54 ....A 0 0 test/file10.txt

2020-03-11 14:18:22 ....A 0 0 test/file2.txt

2020-03-11 14:18:22 ....A 0 0 test/file3.txt

2020-03-11 14:18:22 ....A 0 0 test/file4.txt

2020-03-11 14:24:54 ....A 0 0 test/file5.txt

2020-03-11 14:24:54 ....A 0 0 test/file6.txt

2020-03-11 14:24:54 ....A 0 0 test/file7.txt

2020-03-11 14:24:54 ....A 0 0 test/file8.txt

2020-03-11 14:24:54 ....A 0 0 test/file9.txt

2020-03-11 14:24:54 0 0 10 files, 1 folders

總結

7z格式的壓縮比例比ZIP格式的壓縮比例高30%-50%。

繼續閱讀