我們為什麼需要壓縮?一般是以下原因:
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的資料庫進行手動更新,不過更新時會消耗很多的計算資源,甚至會...