gzip、bzip二、xz壓縮工具

9月30日任務centos

6.1 壓縮打包介紹bash

6.2 gzip壓縮工具服務器

6.3 bzip2壓縮工具運維

6.4 xz壓縮工具工具

 

爲何要壓縮

文件通過壓縮後,其大小會縮小,能夠節約服務器帶寬資源、內存資源,節約運維成本!centos7

常見壓縮格式

Linux平臺的常見壓縮文件格式有如下幾種spa

  • .zip3d

  • .gzcode

  • .bz2ip

  • .xz

  • .tar.gz

  • .tar.bz2

  • .tar.xz

雖然在Linux中文件後綴並不重要,可是爲了便於區分和管理,壓縮文件仍是最好加上上述的一些後綴名

壓縮工具

gzip壓縮工具

gzip不能壓縮目錄!!

  • 基本使用:壓縮/解壓縮

# 建立一個大文件
[root@localhost tmp]# find /etc/ -type f -exec cat {} >> 1.txt \;
[root@localhost tmp]# ls -lh
總用量 25M
-rw-r--r--. 1 root root 25M ... 1.txt

#壓縮文件:gzip file
[root@localhost tmp]# gzip 1.txt
[root@localhost tmp]# ls -lh
總用量 9.3M
-rw-r--r--. 1 root root 9.3M ... 1.txt.gz


#解壓縮文件: gzip -d file.gz
# gzip -d 等價於 gunzip
[root@localhost tmp]# gzip -d 1.txt.gz
[root@localhost tmp]# ls -lh
總用量 25M
-rw-r--r--. 1 root root 25M ... 1.txt
  • 按指定壓縮級別進行壓縮
#以1級別進行壓縮,默認壓縮級別爲9;
# 壓縮級別1-9,壓縮級別越高,佔用CPU資源越高
# gzip -[1-9] file
[root@localhost tmp]# gzip -1 1.txt
[root@localhost tmp]# ls -lh
總用量 9.9M
-rw-r--r--. 1 root root 9.9M ... 1.txt.gz
  • 在壓縮的同時,保留原文件(默認不保留)
[root@localhost tmp]# gzip -c 1.txt > /test/tmp/1.txt.gz
[root@localhost tmp]# ls -lh
總用量 34M
-rw-r--r--. 1 root root  25M ... 1.txt
-rw-r--r--. 1 root root 9.3M ... 1.txt.gz
  • -c配合-d使用,將壓縮文件解壓縮的同時保留壓縮包
# 注意最好使用絕對路徑表示文件,清楚明白,固然相對路徑表示也能夠。
[[root@localhost tmp]# gzip -d -c /test/tmp/1.txt.gz > /test/tmp/2.txt

[root@localhost tmp]# ls -l
總用量 34684
-rw-r--r--. 1 root root  9649736 ... 1.txt.gz
-rw-r--r--. 1 root root 25865478 ... 2.txt
  • zcat命令在不打開壓縮包的狀況下查看包內文件的內容
# 因爲內容太多,這裏只顯示行數
[root@localhost tmp]# zcat 1.txt.gz | wc -l
176350

可使用file命令查看壓縮文件的具體信息!

[root@localhost tmp]# file 1.txt.gz
1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: ..., max speed

有些壓縮文件被命名爲不帶壓縮文件類型後綴的,這種文件沒法解壓,可使用file來查看文件類型,而後修改後綴,更好區分!!

[root@centos7 test]# mv 1.txt.bz2 1.txt
[root@centos7 test]# file 1.txt
1.txt: bzip2 compressed data, block size = 900k
[root@centos7 test]# mv 1.txt 1.txt.bz2

 

bz2壓縮工具

壓縮率比gzip更高

未安裝使用yum install -y bzip2

 

經常使用使用跟gzip命令相似,且一樣不支持壓縮目錄

  • 基本用法

# 壓縮前
[root@localhost tmp]# ls -lh
總用量 25M
-rw-r--r--. 1 root root 25M ... 1.txt

# bzip2壓縮
[root@localhost tmp]# bzip2 1.txt
# 壓縮後,比gzip壓縮率高
[root@localhost tmp]# ls -lh
總用量 8.2M
-rw-r--r--. 1 root root 8.1M ... 1.txt.bz2
# file命令查看文件格式
[root@localhost tmp]# file 1.txt.bz2
1.txt.bz2: bzip2 compressed data, block size = 900k


# bzip2解壓縮
[root@localhost tmp]# bzip2 -d 1.txt.bz2
[root@localhost tmp]# ls -lh
總用量 25M
-rw-r--r--. 1 root root 25M ... 1.txt
  • -c參數在壓縮同時保留原文件
[root@localhost tmp]# bzip2 -c 1.txt > 1.txt.bz2
[root@localhost tmp]# ls -lh
總用量 33M
-rw-r--r--. 1 root root  25M ... 1.txt
-rw-r--r--. 1 root root 8.1M ... 1.txt.bz2
  • -d -c參數:在解壓同時保留原壓縮文件
[root@localhost tmp]# bzip2 -d -c 1.txt.bz2 > 3.txt
[root@localhost tmp]# ls -l
總用量 58816
-rw-r--r--. 1 root root 25865478 ... 1.txt
-rw-r--r--. 1 root root  8491810 ... 1.txt.bz2
-rw-r--r--. 1 root root 25865478 ... 3.txt
  • 指定壓縮級壓縮(通常保存默認便可)
bzip2一樣能夠指定壓縮級別:1-9,默認級別爲6
[root@localhost tmp]# bzip2 -1 1.txt
[root@localhost tmp]# ls -lh
總用量 8.8M
-rw-r--r--. 1 root root 8.8M ... 1.txt.bz2
  • 不解壓狀況下查看壓縮文件內文件的內容
[root@localhost tmp]# bzcat 1.txt.bz2 | wc -l
176350

 

xz壓縮工具

級別使用方法等同與上述的gzip和bzip2命令,一樣也不能壓縮目錄!!

通常狀況下,上述3種壓縮方式:xz > bz2 > gzip

具體壓縮要看文件內容,也不必定xz的壓縮包最小

  • 基本使用

# 壓縮
[root@localhost tmp]# xz 1.txt
[root@localhost tmp]# ls -lh
總用量 7.0M
-rw-r--r--. 1 root root 7.0M ... 1.txt.xz

# 解壓縮 xz -d等價於unxz
[root@localhost tmp]# xz -d 1.txt.xz
[root@localhost tmp]# ls -lh
總用量 25M
-rw-r--r--. 1 root root 25M ... 1.txt
  • 壓縮文件同時保留原文件
[root@localhost tmp]# xz -c 1.txt > 1.txt.xz
[root@localhost tmp]# ls -lh
總用量 32M
-rw-r--r--. 1 root root  25M ... 1.txt
-rw-r--r--. 1 root root 7.0M ... 1.txt.xz
  • 解壓同時保留壓縮文件
[root@localhost tmp]# xz -d -c 1.txt.xz > ./2.txt
[root@localhost tmp]# ls -lh
總用量 57M
-rw-r--r--. 1 root root  25M ... 1.txt
-rw-r--r--. 1 root root 7.0M ... 1.txt.xz
-rw-r--r--. 1 root root  25M ... 2.txt
  • 查看壓縮文件內的文件內容(不解壓前提下)
[root@localhost tmp]# xzcat 1.txt.xz | wc -l
176350
  • xz一樣支持指導壓縮級別的壓縮
[root@localhost tmp]# xz -1 2.txt
[root@localhost tmp]# ls -lh
總用量 40M
-rw-r--r--. 1 root root  25M ... 1.txt
-rw-r--r--. 1 root root 7.0M ... 1.txt.xz
-rw-r--r--. 1 root root 7.5M ... 2.txt.xz
相關文章
相關標籤/搜索