Linux入門真經 039壓縮 解壓與歸檔

2021-08-28 06:06:57 字數 3192 閱讀 5395

我們為什麼需要壓縮?一般是以下原因:

1、檔案太大,我們將其壓縮降低磁碟的空間使用量

2、伺服器頻寬不夠,我們將向客戶端推送的內容(如web資源)進行壓縮,到達客戶端之後再用相關協議去解壓縮。用cpu的效能和時間去節省網路頻寬和延遲。

其中,第一點就是我們今天主要介紹的壓縮和解壓工具。第二點,現在很多web中介軟體(如httpd、nginx等)可以實現,以後再說。

壓縮演算法多種多樣,因此,壓縮/解壓縮工具、檔案格式也就顯得多樣化起來,如:

壓縮命令/解壓縮命令            壓縮格式檔案

compress/uncompress            ***.z

gzip/gunzip                                ***.gz

bzip2/bunzip2                              ***.bz2

xz/unxz                                          .xz

zip/unzip                                       ***.zip

以下進行分組介紹

1、gzip/gunzip/zcat

壓縮:gzip [option]...  file...

-d:解壓縮,相當於gunzip;

-#:指定壓縮比,預設是6;數字越大壓縮比越大(1-9);

-c:將壓縮結果輸出至標準輸出;

gzip  -c  file > /path/to/somefile.gz

gzip壓縮或解壓縮後會刪除原檔案,-c重定向到檔案則保留原始檔

解壓:gunzip [option]...  file...

直接檢視壓縮後的文字內容無需解壓:

zcat file…

2、bzip2/bunzip2/bzcat

壓縮:bzip2 [option]...  file...

-d:解壓縮

-#:指定壓縮比;預設是6;數字越大壓縮比越大(1-9);

-k:keep,保留原檔案;

解壓縮:bunzip2

不壓縮直接檢視文字內容:bzcat

3、xz/unxz/xzcat

xz [option]...  file...

-d:解壓縮

-#:指定壓縮比;預設是6;數字越大壓縮比越大(1-9);

-k:保留原檔案;

4、zip/unzip

可以將多個檔案壓縮/歸檔為單個檔案

字尾名:.zip

歸檔如果要將乙個目錄下的所有檔案一併壓縮,需要先歸檔(預設歸檔並不具備壓縮功能,且預設不會刪除原始檔)

歸檔常用命令:tar

tar  [option]... file...

(1) 建立歸檔(-f需要帶引數,所以要放在後面)

-c-f /path/to/somefile.tar  file...

-cf /path/to/somefile.tar  file...

(2) 展開歸檔

-xf  /path/from/somefile.tar

-xf  /path/from/somefile.tar -c  /path/to/somedir

如果tar進行了壓縮,-xf能自動進行解壓縮

(3) 檢視歸檔檔案的檔案列表

-tf  /path/to/somefile.tar

歸檔完成後通常需要壓縮,結合此前的壓縮工具,就能實現壓縮多個檔案了;

(4) 歸檔壓縮(tar)

-z:呼叫gzip2

-zcf   /path/to/somefile.tar.gz  file...

解壓縮並展開歸檔:-zxf  /path/to/somefile.tar.gz

-j:呼叫bzip2

-jcf:模擬,你應該懂得。。

-jxf:模擬,你應該懂得。。

-j: 呼叫xz

-jcf:模擬,你應該懂得。。

-jxf:模擬,你應該懂得。。

注:tar預設使用相對路徑,若使用絕對路徑需要使用選項-p。但是是用絕對路徑後,解壓後的檔案是有母目錄的(如/var/log/a.log檔案歸檔到tmp下面,展開後不是/tmp/a.log而是/tmp/var/log/a.log,所以還是建議使用相對路徑)

練習:把/var/log目錄下所有的檔案歸檔至tmp目錄下並壓縮,命名為log.tar.gzip。將tar包解壓縮並展開。

[root@localhost ~]# cd /var/log

[root@localhost log]# tar -czf /tmp/log.tar.gz *.log

[root@localhost log]# ll /tmp/log.tar.gz

-rw-r--r--. 1 root root 441 aug 30 16:07/tmp/log.tar.gz

先瞅瞅裡面有啥

[root@localhost log]# cd /tmp/

[root@localhost tmp]# tar -tf log.tar.gz

boot.log

yum.log

解壓並展開歸檔

[root@localhost tmp]# mkdir mylog

[root@localhost mylog]# tar -xf ../log.tar.gz

[root@localhost mylog]# ls

boot.log yum.log

或者

[root@localhost tmp]# rm -rf mylog

[root@localhost tmp]# mkdir mylog

[root@localhost tmp]# tar -xf log.tar.gz -c mylog/

[root@localhost tmp]# ls mylog/

boot.log yum.log

每週

一、三、五穩定更新

Linux入門真經 003Linux的分支版本

前一節給大家介紹了linux的應用場景,今天給大家介紹一下linux常見的發行版本。將linux核心原始碼打包編譯成二進位制檔案,並做一定程度的客製化,使其能夠友好地為客戶端所接受和使用是一件頗為複雜的事情。因此,大量linux發行商湧現,也就出現了大量的linux發行版本。我們沒有必要把每乙個發行...

Linux入門真經 007Linux命令的通用語法

這節開始給大家講linux的命令語法格式。首先我們先理解一下再bash命令列中,我們見過很多次的命令提示符字首是什麼意思 root localhost 其含義為 使用者名稱 主機 當前工作目錄 提示符 在學習linux命令之前,我們再了解一下linux檔案系統的結構。我們都用過windows,知道w...

Linux入門真經 035使用find去查詢檔案

常見的linux檔案查詢工具有locate和find。locate的優點在於 它是基於索引庫建立,週期性更新。因此速度相當快,查詢時資源消耗極少。缺點是 由於不是實時查詢,所以一些在更新週期之前新增的檔案沒法找到。我們可以隨時對locate的資料庫進行手動更新,不過更新時會消耗很多的計算資源,甚至會...