中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中有哪些文件的壓縮與解壓縮命令

發布時間:2021-06-25 15:34:52 來源:億速云 閱讀:194 作者:Leah 欄目:系統運維

本篇文章為大家展示了Linux中有哪些文件的壓縮與解壓縮命令,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1、zip壓縮與解壓縮
       zip是最為廣泛使用的壓縮程序,經它壓縮的文件會產生擴展名為zip的壓縮文件,而且這種格式在多種系統上可以使用,像windows中的winzip
       下面看一下在linux中如何建立zip文件。
        我們在終端中輸入zip會出現這個命令的一些介紹和參數的意義。

代碼如下:


xiaopeng@ubuntu:~/test$ zip
Copyright (c) 1990-2006 Info-ZIP - Type 'zip "-L"' for software license.
Zip 2.32 (June 19th 2006). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
 The default action is to add or replace zipfile entries from list, which
 can include the special name - to compress standard input.
 If zipfile and list are omitted, zip compresses stdin to stdout.
 -f   freshen: only changed files  -u   update: only changed or new files
 -d   delete entries in zipfile    -m   move into zipfile (delete files)
 -r   recurse into directories     -j   junk (don't record) directory names
 -0   store only                   -l   convert LF to CR LF (-ll CR LF to LF)
 -1   compress faster              -9   compress better
 -q   quiet operation              -v   verbose operation/print version info
 -c   add one-line comments        -z   add zipfile comment
 -@   read names from stdin        -o   make zipfile as old as latest entry
 -x   exclude the following names  -i   include only the following names
 -F   fix zipfile (-FF try harder) -D   do not add directory entries
 -A   adjust self-extracting exe   -J   junk zipfile prefix (unzipsfx)
 -T   test zipfile integrity       -X   eXclude eXtra file attributes
 -y   store symbolic links as the link instead of the referenced file
 -R   PKZIP recursion (see manual)
 -e   encrypt                      -n   don't compress these suffixes


   下面我們就最簡單的實驗一下。我們就是把當前目錄下文件名以test開頭的所有文件壓縮文一個文件,并可以查看一下壓縮比。(紅色是我的注釋)

代碼如下:


xiaopeng@ubuntu:~/test$ ls -lh


總用量 24K

代碼如下:


-rw-r--r-- 1 xiaopeng xiaopeng  212 2009-06-25 14:13 test1
-rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2
-rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3
-rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4

代碼如下:


xiaopeng@ubuntu:~/test$ zip test.zip test*  


zip命令后面先跟壓縮后的文件名,這里是test.zip,當然后綴名不是必須的。然后跟要壓縮的文件名。這里用的test*指的是全部以test開頭的文件,包括test1 test2 test3 test4
  adding: test1 (deflated 30%)   這里顯示的是壓縮比
  adding: test2 (deflated 65%)
  adding: test3 (deflated 64%)
  adding: test4 (deflated 73%)  大體可以看出源文件越大,壓縮比就越大

代碼如下:


xiaopeng@ubuntu:~/test$ ls -lh


總用量 32K

代碼如下:


-rw-r--r-- 1 xiaopeng xiaopeng  212 2009-06-25 14:13 test1
-rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2
-rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3
-rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4
-rw-r--r-- 1 xiaopeng xiaopeng 5.0K 2009-06-25 14:17 test.zip
xiaopeng@ubuntu:~/test$


     上面是壓縮了相同類型的文件,其實也可以把不同類型的文件壓縮到一起。有時候為了節省硬盤空間,可以在建立壓縮文件后,自動刪除原始文件,此時只要帶一個 -m 的參數就可以。

代碼如下:


xiaopeng@ubuntu:~/test$ ls -lh


總用量 24K

代碼如下:


-rw-r--r-- 1 xiaopeng xiaopeng  212 2009-06-25 14:13 test1
-rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2
-rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3
-rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4
xiaopeng@ubuntu:~/test$ zip -m test.zip test*  帶參數-m
updating: test1 (deflated 30%)
updating: test2 (deflated 65%)
updating: test3 (deflated 64%)
updating: test4 (deflated 73%)
xiaopeng@ubuntu:~/test$ ls -lh


總用量 8.0K

代碼如下:


-rw-r--r-- 1 xiaopeng xiaopeng 5.0K 2009-06-25 14:26 test.zip
xiaopeng@ubuntu:~/test$


       可以看出 原始文件已經被刪除,只有壓縮文件留下了。
       在壓縮一些目錄的時候,經出在目錄中會有子目錄,此時根據子目錄中的文件是否壓縮分為兩種情況,一種是壓縮,一種是忽略自錄中的內容,如果選擇壓縮子目錄,則使用-r參數,如果不壓縮,則使用-j 參數
下面舉例,一個是-r 一個是-j

代碼如下:


xiaopeng@ubuntu:~/test$ ls -lh


總用量 28K

代碼如下:


drwxr-xr-x 2 xiaopeng xiaopeng 4.0K 2009-06-25 14:31 pdf
-rw-r--r-- 1 xiaopeng xiaopeng  212 2009-06-25 14:13 test1
-rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2
-rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3
-rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4
xiaopeng@ubuntu:~/test$ zip -r test.zip *  壓縮當前目錄所有內容,r 參數說明pdf這個子目錄中的內容也壓縮
 adding: pdf/ (stored 0%)
 adding: pdf/case_Contact.pdf (deflated 10%)
 adding: pdf/case_KRUU.pdf (deflated 9%)
 adding: pdf/case_howard_county_library.pdf (deflated 24%)
 adding: test1 (deflated 30%)
 adding: test2 (deflated 65%)
 adding: test3 (deflated 64%)
 adding: test4 (deflated 73%)
 xiaopeng@ubuntu:~/test$
 


下面的情況是子目錄不壓縮

代碼如下:


xiaopeng@ubuntu:~/test$ ls -l


 總用量 28

代碼如下:


drwxr-xr-x 2 xiaopeng xiaopeng  4096 2009-06-25 14:31 pdf
-rw-r--r-- 1 xiaopeng xiaopeng   212 2009-06-25 14:13 test1
-rw-r--r-- 1 xiaopeng xiaopeng  1233 2009-06-25 14:13 test2
-rw-r--r-- 1 xiaopeng xiaopeng  3412 2009-06-25 14:14 test3
-rw-r--r-- 1 xiaopeng xiaopeng 10091 2009-06-25 14:14 test4
xiaopeng@ubuntu:~/test$ zip -j test.zip *
 adding: test1 (deflated 30%)
 adding: test2 (deflated 65%)
 adding: test3 (deflated 64%)
 adding: test4 (deflated 73%)  


子目錄pdf被忽略

代碼如下:


xiaopeng@ubuntu:~/test$


令外一個技巧: 某些文件因為編碼的原因,已經大幅的減少了文件的大小,如GIF,JPG 等格式,在用zip壓縮幾乎沒什么作用而浪費了時間,此時可一用-n參數直接保存這些文件而不壓縮。例如:

代碼如下:


xiaopeng@ubuntu:~/test$ ls -lh


總用量 68K

代碼如下:


-rw-r--r-- 1 xiaopeng xiaopeng  18K 2009-06-04 21:18 duality.jpg
-rw-r--r-- 1 xiaopeng xiaopeng  212 2009-06-25 14:13 test1
-rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2
-rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3
-rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4
-rw-r--r-- 1 xiaopeng xiaopeng  23K 2009-06-10 15:07 test.jpg
xiaopeng@ubuntu:~/test$ zip -n .jpg test.zip *
 adding: duality.jpg (stored 0%)
 adding: test1 (deflated 30%)
 adding: test2 (deflated 65%)
 adding: test3 (deflated 64%)
 adding: test4 (deflated 73%)
 adding: test.jpg (stored 0%)

 
jpg格式的沒有壓縮而是直接保存了

代碼如下:


xiaopeng@ubuntu:~/test$


如果需要直接保存的格式多于一個,可以用冒號隔開 如: -n .jpg: .mpg

小技巧,有時候一個目錄下要壓縮的文件很多,但是有那么很少的幾個不壓縮,那么我們可以用-x參數來排除這幾個不壓縮的。例如

代碼如下:


xiaopeng@ubuntu:~/test$ ls
duality.jpg  test1  test2  test3  test4  test.jpg  test.zip
xiaopeng@ubuntu:~/test$ zip -n .jpg test.zip * -x test2   不壓縮test2
updating: duality.jpg (stored 0%)
updating: test1 (deflated 30%)
updating: test3 (deflated 64%)
updating: test4 (deflated 73%)
updating: test.jpg (stored 0%)
xiaopeng@ubuntu:~/test$


可以看到test2沒有被壓縮,而是直接跳過了它。

      壓縮鏈接,zip會先讀取該鏈接的指向的原文件的內容,然后再壓縮,而且壓縮完了,該鏈接也就不存在了。

       另外,壓縮率也是可以調整的。等級是1到9,1最低,9最高,默認是6 。我們可以用1和9來比較下,壓縮率。

代碼如下:


xiaopeng@ubuntu:~/test$ zip -1 low.zip *
 adding: test1 (deflated 30%)
 adding: test2 (deflated 63%)
 adding: test3 (deflated 62%)
 adding: test4 (deflated 70%)
xiaopeng@ubuntu:~/test$ zip -9 high.zip *
 adding: low.zip (deflated 4%)
 adding: test1 (deflated 30%)
 adding: test2 (deflated 65%)
 adding: test3 (deflated 64%)
 adding: test4 (deflated 73%)


       因為文件都比較小,效果不是很明顯,但是9的壓縮率確實高了一點點。
       壓縮率高,節省空間,但是壓縮時間要長,壓縮率低,節省空間少,但是用時間少,所以我們要合理選擇壓縮率,一般都用默認。

       zip文件解壓縮。這個比較簡單,就是unzip命令。

代碼如下:


xiaopeng@ubuntu:~/test$ ls
test.zip
xiaopeng@ubuntu:~/test$ unzip test.zip
Archive:  test.zip
 inflating: test1                  
 inflating: test2                  
 inflating: test3                  
 inflating: test4                  
xiaopeng@ubuntu:~/test$


     當然也可以用-x參數來指定哪個文件不需要壓縮。

代碼如下:


xiaopeng@ubuntu:~/test$ unzip test.zip -x test3    test3不需要壓縮出來
Archive:  test.zip
 inflating: test1                  
 inflating: test2                  
 inflating: test4                  
xiaopeng@ubuntu:~/test$


       還有一個很有用的參數,-Z ,注意是大寫的Z 。作用是查看壓縮文件的內容。就像windows中的winzip,我們不用解壓縮,也可以打開看看里面有什么文件,文件的類型什么。比如我想看看test.zip里面的內容,而又不想把這個解壓縮了再看,可以如下操作。

代碼如下:


xiaopeng@ubuntu:~/test$ unzip -Z test.zip
Archive:  test.zip   5069 bytes   4 files
-rw-r--r--  2.3 unx      212 tx defN 25-Jun-09 14:13 test1
-rw-r--r--  2.3 unx     1233 tx defN 25-Jun-09 14:13 test2
-rw-r--r--  2.3 unx     3412 tx defN 25-Jun-09 14:14 test3
-rw-r--r--  2.3 unx    10091 tx defN 25-Jun-09 14:14 test4
4 files, 14948 bytes uncompressed, 4567 bytes compressed:  69.4%
xiaopeng@ubuntu:~/test$


     當然除了這些參數外,還有很多參數可以使用,這里就不一一實驗了,我們可以在使用的過程中加以掌握。

2、zip與 tar
     如果你在Linux里面安裝過軟件壓縮包,對這個以.tar.gz為后綴的壓縮文件不會陌生,比如我們在Linux QQ 的下載頁面http://im.qq.com/qq/linux/download.shtml   ,就會看到其中一個安裝包就是.tar.gz包。
    這種包帶兩個后綴是有原因的,gz和tar 是分別由兩種程序產生的。gz時由gzip壓縮而成的壓縮文件,壓縮效果和zip差不多,但是和zip最大的不同在于,gzip無法把很多個單一文件壓縮成一個單一文件,所以tar就有了用武之地,tar不是什么壓縮程序,它是用來打包文件的。tar和gzip一見如故,兩個人合作起來實現壓縮,也就是當多個文件壓縮時,先用tar把這些文件打包,成為.tar的包,然后再由gzip壓縮這個包,于是就有了.tar.gz的文件格式。
     
    首先先看一下gzip和 gunzip的應用。gzip的用法很簡單,后面加上要壓縮的文件名就行。

代碼如下:


xiaopeng@ubuntu:~/test$ ls -lh


總用量 24K

代碼如下:


-rw-r--r-- 1 xiaopeng xiaopeng  212 2009-06-25 15:49 test1
-rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2
-rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3
-rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4
xiaopeng@ubuntu:~/test$ gzip test1
xiaopeng@ubuntu:~/test$ ls -lh


總用量 24K

代碼如下:


-rw-r--r-- 1 xiaopeng xiaopeng  173 2009-06-25 15:49 test1.gz
-rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2
-rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3
-rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4

      
       注意和zip的不同,只要在命令后加上要壓縮的文件名即可,系統會自動為生成的壓縮文件起名為原文件名加后綴.gz ,而且原文件在壓縮完成后會被刪除。
        解壓縮用gunzip

代碼如下:


xiaopeng@ubuntu:~/test$ gunzip *.gz
xiaopeng@ubuntu:~/test$ ls
test1  test2  test3  test4
xiaopeng@ubuntu:~/test$


        完成后以前的壓縮文件test1.gz也會被刪除。
    同樣gzip在解壓前也可以查看文件內容,用參數-l,
    gzip也支持壓縮率修改,為1到9,和zip相同。

    下面看tar的用應。tar是用來打包文件的,打包后的包的大小和以前所有原文件大小的和是相等的,(其實大小是不相等的,打完包后的大小大于源文件的大小和,這個可以驗證一下。《Ubuntu 入門到精通》說一樣大,顯然是不對的)也就是說tar沒有壓縮的效果。tar有非常多的參數,可以通過在線幫助文檔查看,或者用--help命令查看。這里我們只用簡單用到幾個。
    首先是多個文件打包。看例子。

代碼如下:


xiaopeng@ubuntu:~/test$ ls
test1  test2  test3  test4
xiaopeng@ubuntu:~/test$ tar -cvf test.tar *


是把當前目錄下的所有文件打包成test.tar  幾個參數的意義為: c(Creat)建立新文件  v(Verbose)顯示命令執行時的信息 f(File)指定打包為文件形式。

代碼如下:


test1
test2
test3
test4

代碼如下:


xiaopeng@ubuntu:~/test$ ls
test1  test2  test3  test4  test.tar
xiaopeng@ubuntu:~/test$


     要解開tar文件,只需把參數中的c改為x(eXtract)即可

代碼如下:


xiaopeng@ubuntu:~/test$ ls
test.tar
xiaopeng@ubuntu:~/test$ tar -xvf test.tar
test1
test2
test3
test4
xiaopeng@ubuntu:~/test$ ls
test1  test2  test3  test4  test.tar
xiaopeng@ubuntu:~/test$

    下面我們看一下tar和gzip合作完成對4個文件的壓縮。步驟是先用tar打包,然后對這個.tar包用gzip壓縮,最后得到.tar.gz文件。例子:

代碼如下:


xiaopeng@ubuntu:~/test$ ls
test1  test2  test3  test4
xiaopeng@ubuntu:~/test$ tar cvf test.tar *   首先打包成test.tar
test1
test2
test3
test4
xiaopeng@ubuntu:~/test$ ls
test1  test2  test3  test4  test.tar
xiaopeng@ubuntu:~/test$ gzip test.tar  把test.tar用gzip壓縮成test.tar.gz 壓縮包。
xiaopeng@ubuntu:~/test$ ls
test1  test2  test3  test4  test.tar.gz
xiaopeng@ubuntu:~/test$


    解壓.tar.gz包時,和壓縮過程相反,現解壓,再tar把包打開。

代碼如下:


xiaopeng@ubuntu:~/test$ ls
test.tar.gz
xiaopeng@ubuntu:~/test$ gunzip test.tar.gz     先用gunzip把.tar.gz包解壓縮
xiaopeng@ubuntu:~/test$ ls
test.tar
xiaopeng@ubuntu:~/test$ tar xvf test.tar     然后用tar把.tar包打開
test1
test2
test3
test4
xiaopeng@ubuntu:~/test$ ls
test1  test2  test3  test4  test.tar
xiaopeng@ubuntu:~/test$

上述內容就是Linux中有哪些文件的壓縮與解壓縮命令,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万宁市| 通许县| 沾化县| 成都市| 镇远县| 夏津县| 屯门区| 滁州市| 简阳市| 鄂温| 宁河县| 黔江区| 金平| 宽甸| 汉中市| 兰坪| 家居| 桑植县| 衡南县| 凯里市| 广南县| 陇川县| 开封市| 梅河口市| 彩票| 大英县| 钟祥市| 牙克石市| 隆子县| 桑日县| 石台县| 邢台市| 叙永县| 哈尔滨市| 留坝县| 北宁市| 织金县| 山西省| 祁东县| 巧家县| 玉门市|