壓縮與歸檔

一、壓縮

    壓縮:根據一定算法將數據以更加節省空間的形式存放。下面來看一下Linux常見的壓縮工具:

    1、gzip/gunzip

        后綴名:.gz

        常用選項:

        -#:壓縮比:默認為6,范圍0-9。

        -d:解壓縮,相當于gunzip。

        -c:將壓縮后的結果輸出標準輸出。

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

        -v:顯示進度。

        zcat someifle.gz:不解壓查看gzip壓縮后的內容。

        演示:

            先復制一個文件到/tmp目錄下:

1.png

2.png3.png

            從上面的結果中可以明顯的看出壓縮前后的文件大小的區別,而且在壓縮完后源文件就不見了,如果我們想保留原文件可以進行以下操作:

4.png

            上面的范例中首先使用-d選項進行了解壓縮,也可以使用gunzip命令來實現解壓縮;壓縮時修改了默認的壓縮比,并且保留了源文件。

            如果想要讀取壓縮后的文件內容,我們可以先將其解壓后查看,當然也可以直接使用命令進行查看:

5.png

    2、bzip2/bunzip2

        后綴名: .bz2

        常用選項:

        -#:壓縮比:默認為6,范圍1-9。

        -d:解壓縮,相當于bunzip2。

        -k:保留原文件。

        -c:將壓縮后的結果輸出標準輸出。

        bzcat somefile.bz2:不解壓縮查看。

        演示:

1.png2.png            同樣,bzip2在壓縮后也把源文件搞沒了;

3.png

            也可以使用與gzip相同的方法來保留源文件;

4.png

            查看壓縮文件的內容:

4.png

    3、xz/unxz

        后綴名: .xz

        常用選項:

        -#:壓縮比默認為6, 范圍0-9。

        -d:解壓縮,相當于unxz。

        -k:保留原文件。

        -c:將壓縮后的結果輸出標準輸出。

        -v:顯示進度。

    xzcat somefile.xz:不解壓縮查看。

    演示:1.png2.png

    xz命令與gzip、bzip2命令用法類似,就不做過多的演示了。

    以上三種壓縮工具都可以雖然都是可以對文件進行壓縮,但它的壓縮性能是有區別的:

1.png2.png

    分別使用三種工具對同一文件進行同一級別的壓縮,結果顯示xz的壓縮比最高。

    上面介紹的工具只能對單個文件進行壓縮,而對于目錄是不能操作的,如下圖所示:

3.png

    如果想對目錄進行壓縮可以使用下面的這個命令。

    4、zip/unzip

    后綴名:.zip

        命令格式:zip 文件名.zip 原文件

        支持歸檔壓縮,可將多個文件壓縮至一個zip文件中;

        支持對目錄進行歸檔,如zip tmp.zip /tmp/*。

1.png

        針對于目錄的壓縮通常使用歸檔工具,所以zip就不過多的介紹了。

二、歸檔

    歸檔就是實現將多個文件打包成單個文件。

    使用tar命令來實現歸檔功能。

        命令格式:tar [option] -f tarfile.tar src_file

            option:            

                -c:創建歸檔。

                -f FILE.tar:指定歸檔后的文件。

                -v:顯示執行過程。

              -x:展開歸檔。

                -t:查看歸檔文件中的內容。

                -z:使用gzip格式壓縮和解壓縮歸檔文件。

                -j:使用bzip2格式壓縮和解壓縮歸檔文件。

                -J:使用xz格式壓縮和解壓縮歸檔文件。

                -C:指定歸檔的存放路徑。

                -p:保留備份數據的原本權限與屬性。

                -P:將文件以絕對路徑打包。

        演示:

            1、將/etc/目錄打包存放到/tmp目錄

1.png

            在執行命令時出現兩個提示信息,從文件名和硬鏈接中移除了根目錄;其實tar命令打包時是按照相對路徑進行打包的,其用意在于將tar包展開時可以在任意目錄進行,如果打包時是按照絕對路徑的目錄存放,那么展開時就會直接按照絕對路徑進行恢復,以上圖為例,如果/etc目錄按照絕對路徑打包,那么展開時就會直接恢復到/etc目錄,會造成使用舊文件覆蓋新文件的問題。

            如果想要以絕對路徑對文件打包,可以使用-P選項,下面來看一下這兩種方式的不同之處:

1.png3.png

            上面分別以相對路徑和絕對路徑的方式對/etc目錄進行了歸檔操作,下面我們來看一下兩個tar包中的內容:

4.png5.png

            2、對歸檔文件時行壓縮

1.png            3、展開歸檔文件

1.png2.png

            注意:展開歸檔文件時,如果歸檔文件是壓縮的,使用相對應的壓縮命令選項展開歸檔文件;以上圖為例,歸檔文件的壓縮格式為xz,在展開時可以使用對應的-J選項進行解壓展開,也可以直接使用-xf選項,tar命令自動檢測包類型并解壓。


原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/1991

(0)
petmasterpetmaster
上一篇 2015-05-03 00:54
下一篇 2015-05-04 18:05

相關推薦

  • CentOS 7 tomcat 7.0.54 的功能實現及詳解

    一、 jdk 安裝配置 # yum install java-1.8.0-openjdk-devel (依賴的java-1.8.0-openjdk,java-1.8.0-openjdk,headless也會被安裝 ) # alternatives -h # vim /e…

    2016-08-19
  • crm命令行命令詳解

    crm -status 顯示當前集群狀態 -configure 配置集群 a.show xml 顯示當前集群配置信息(xml格式) b.property 顯示集群可用的全局屬性(鍵入之后按兩下Tab) -verifiy 校驗 -commit 提交 -node a.online 設置當前節點上線 b.show 顯示當前節點狀態 c.standby 將當前節點設…

    Linux干貨 2017-11-04
  • 設計模式(七)組合模式Composite(結構型)

    1. 概述 在數據結構里面,樹結構是很重要,我們可以把樹的結構應用到設計模式里面。 例子1:就是多級樹形菜單。 例子2:文件和文件夾目錄 2.問題 我們可以使用簡單的對象組合成復雜的對象,而這個復雜對象有可以組合成更大的對象。我們可以把簡單這些對象定義成類,然后定義一些容器類來存儲這些簡單對象。客戶端代碼必須區別對象簡單對象和容器對象,而實際上大多數情況下用…

    Linux干貨 2015-07-01
  • Cent OS 6 編譯方式安裝LAMP

    細節要求: (1) 三者分離于三臺主機; (2) 一個虛擬主機用于提供phpMyAdmin;另一個虛擬主機用于提供wordpress; (3) PHP使用FastCGI+xcache; (4) httpd使用非prefork的mpm模式; 一、CentOS6環境準備 1、OS(CentOS6.8)下開發環境包的安裝,編譯安裝程序包需要使用 #yum grou…

    Linux干貨 2017-02-24
  • 10yum源的配置

    yum倉庫使用起來特別方便,然而使用之前當然是要配置的啦。下面就介紹一下怎么從0 配置一個yum倉庫。 首先要創建yum倉庫,當然不能使只給一臺服務器用,那要給多個服務器用的話,就需要網絡服務。yum倉庫支持的網絡服務有兩種,FTP和HTTP。用yum主要用到的是數據傳輸,因此FTP更適合創建yum倉庫,下面就以FTP為例,說明一下yum倉庫的配置。 第一步…

    Linux干貨 2016-11-04
欧美性久久久久