Linux 打包及壓縮命令使用方法總結

2021-12-30 方志朋
1. 概覽

在這篇文章中,我將總結 Linux 系統下面常見的幾種壓縮工具,包括它們的壓縮命令、解壓縮命令、特殊參數等,同時,我還將介紹打包命令 tar,以及如何將其與壓縮命令同時使用。

Linux 下面的壓縮命令主要有下面幾個:

打包命令:

如果和 gzip 一塊使用:.tar.gz 或者 .tgz

所謂打包,就是將一個文件、或者一堆文件打包成一個單一文件的過程。

這裡還需要說明一個術語:壓縮率。其計算公式是:(壓縮後文件體積) / (壓縮前文件體積)

還有一點是:gzip bzip2 xz 這幾個命令都只能對但一個文件做壓縮,不能壓縮一個目錄,壓縮目錄需要通過 tar 配合這幾個壓縮命令來處理,或者使用 zip 命令

zip 命令能提供的功能和 tar 非常類似,更詳細的使用方法使用 tldr zip & tldr unzip 來查看

2. 使用方法2.1 gzip 命令

gzip 會就地壓縮,也就是源文件會被壓縮文件替代。

壓縮

gzip <file_name>

執行完上述命令,會在當前目錄下生成 file_name.gz 文件。

壓縮命令有個比較有用的參數:

gzip -v <file_name>

解壓縮

gzip -d <file_name>.gz

或者

gunzip <file_name>.gz

會在當前目錄下生成 <file_name> ,源壓縮文件不在了。

2.2 bzip2 命令

默認情況下,bzip2 命令也是就地壓縮,壓縮後源文件將會被替代。

使用方法和 gzip 基本一樣,但是能提供更好的壓縮率,當然,付出的代價就是壓縮時間更長。

壓縮

bzip2 <file_name>

或者引入 -v 參數查看壓縮率:

bzip2 -v <file_name>

將在當前目錄下生成 <file_name>.bz2 文件。

解壓縮

bzip2 -d <file_name>.bz2

或者

bunzip2 <file_name>.bz2

2.3 xz 命令

默認情況下,xz 命令也是就地壓縮,原始文件將被覆蓋。

使用方法和前面提到的 gzip bzip2 類似,參數也幾乎是一樣的。

壓縮

xz <file_name>

或者加上 -v 參數查看壓縮率:

xz -v <file_name>

壓縮完後,會在當前目錄下生成 <file_name>.xz 文件。

這時可以使用 -l 參數,來查看壓縮前後的文件對比信息:

xz -l <file_name>.xz

舉個例子如下:

tanjuntao@mbp:~/Downloads$ xz -l ppt模板.pptx.xz
Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
    1       1    124.7 KiB    135.5 KiB  0.920  CRC64   ppt模板.pptx.xz
tanjuntao@mbp:~/Downloads$

解壓縮

xz -d <file_name>.xz

注意,在 xz 命令這裡,沒有 xunz 這種命令哦。

2.4 zip 命令

zip 命令和前面的 gzip bzip2 xz 不一樣,它壓縮後不會覆蓋原有的文件。

壓縮單個文件

zip <compresed>.zip <file_name>

或者加入 -v 參數,可以查看壓縮率:

zip -v <compresed>.zip <file_name>

執行上述命令,將會在當前目錄下新生成 <compresed>.zip 文件,原有的 <file_name> 將繼續保留。

壓縮多個文件

zip <compresed>.zip a.txt b.txt c.txt

會將 a.txt, b.txt, c.txt 同時壓縮到 compresed.zip 文件中。

壓縮目錄

zip -r dir.zip <dir_name>

解壓縮

unzip <compresed>.zip

如果這個 .zip 文件是從多個單一文件通過 zip 命令壓縮來的,那麼執行 unzip 將會傾倒裡面所有的文件到當前文件夾;如果這個 .zip 文件是從某個目錄通過 zip -r 壓縮來的,那麼執行 unzip 將會在當前目錄下生成一個 compresed 名字的目錄,目錄裡面的所有文件不會被傾倒在當前目錄。2.5 tar 命令

tar 命令的參數可以說是 Linux 上面最複雜且最不容易記憶的幾個之一了,完整的 tar 命令的使用方法可以足夠寫另外一篇文章。在這裡,我主要將介紹 tar 命令最核心的參數。

先解釋下 tar 的作用:tar 是打包命令,也就是將一系列文件,或者某個文件夾,打包成單一文件。如果配合前面介紹的 3 種壓縮命令 gzip bzip2 xz (不包含 zip ),那麼其可以完成 打包+壓縮 的功能。

tar 執行完後,原有文件或者目錄將保留。

下面先介紹 tar 最常用的參數:

-c : create 的意思,創建 tar 文件;-v : verbose 的意思,顯示打包壓縮或者解打包解壓縮過程中的詳細信息;-C : 後面接某個目錄,將文件加壓縮到該特定目錄下(默認是解壓縮在當前目錄)

只打包文件不壓縮

打包單個或多個文件:

tar -cv -f target.tar a.txt b.txt c.txt d.txt

打包單個目錄或者多個目錄:

tar -cv -f target.tar dir1 dir2 dir3

同時打包文件和目錄:

tar -cv -f target.tar dir1 dir2 a.txt b.txt c.txt

打包同時用 gzip 壓縮

tar -cvz -f target.tar.gz dir1 dir2 a.txt

打包同時使用 bzip2 壓縮

tar -cvj -f target.tar.bz dir1 dir2 a.txt

打包同時使用 xz 壓縮

tar -cvJ -f target.tar.xz dir1 dir2 a.txt

查看

tar -tvz -f target.tar.gz

或者

tar -tvJ -f target.tar.xz

解包和解壓縮

tar -xvz -f target.tar.gz

上述命令將會在當前目錄下解壓縮,也就是 target.tar.gz 裡面的文件會解壓縮到當前目錄下。

如果要解壓縮到指定目錄怎麼做呢?

使用 -C 參數:

tar -xvz -f target.tar.gz -C ~/test

上述命令,會將 target.tar.gz 裡面的所有文件解壓到 ~/test 目錄下。

總結下:tar 命令可以將任意的文件和目錄打包成一個單一文件,解壓縮時,默認是將 tar ball 裡面的所有文件傾倒在當前目錄,如果需要傾倒到其它目錄,使用 -C 參數。

相關焦點

  • ​Linux 系統 tar 文件壓縮打包命令
    Linux 系統 tar 文件壓縮打包命令 引言 前面我們說了打包和壓縮,才知道了打包和壓縮不一樣啊,那日常中打包和壓縮該如何操作呢,小夥伴們肯定想說,這還用問嗎,像我們日常中不管是 Windows 系統還是 Mac 系統它們都用系統自帶的打包壓縮工具, Windows 系統有本身的文件資源管理器;Mac 系統也有原生的歸檔實用工具,還有很多第三方的軟體
  • Linux下的tar壓縮解壓縮命令詳解
    tar-c: 建立壓縮檔案-x:解壓-t:查看內容-r:向壓縮歸檔文件末尾追加文件-u:更新原壓縮包中的文件這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。
  • Linux常用命令-解壓縮篇
    前言Linux常用命令中,有很多用於對文件的壓縮或解壓,本文將介紹這些解壓縮命令中不常見卻非常實用的用法。tartar是linux中最常用的解壓縮命令。tar命令可用於處理後綴名為tar,tar.gz,tgz,.tar.Z,tar.bz2的文件。
  • Linux 常用命令:解壓縮篇
    tartar是linux中最常用的解壓縮命令。tar命令可用於處理後綴名為tar,tar.gz,tgz,.tar.Z,tar.bz2的文件。-9)越大,壓縮率越高,耗時越長打包符號連結文件前面的命令只能打包普通文件,如果想要打包符號連結文件,則需要使用參數-y:zip  -ry test.zip test向壓縮包中增加或更新文件有時候需要向壓縮包中增加文件,但又不想重新解壓打包,可以使用參數
  • Linux 壓縮、解壓、打包詳解
    在Linux 中,解壓、壓縮、打包是日常會很頻繁用到的幾個操作,但因為參數很多,沒有記憶點,加上壓縮文件的類型很多,如果不經常使用,會容易忘記。
  • Linux運維:常用的文件(打包)解壓和壓縮工具之tar
    tar.bz2、xz、 7z 等, 後面會一一介紹各種(打包)壓縮。tar.gz 打包、壓縮、解壓官方文檔:https://www.gnu.org/software/tar/manual/tar.html中文文檔:https://zh.wikipedia.org/wiki/Tar.tar.gz 或者 .tgz 文件其實在是tar打包基礎上進行 gzip 壓縮,可以分成兩步:第一步,打包。
  • linux 幾種壓縮解壓命令介紹
    今日同時恭喜另外一場沒有硝煙的勝利,為了避蹭熱點之嫌,在此我就不明說具體那件事,不過小編實習+第一份工作作為外包公司在這家公司駐點過,現在想想也覺得是一份難能的財富一,linux下都有哪些解壓縮的命令1,gzipGzip是若干種文件壓縮程序的簡稱,通常指GNU計劃的實現,此處的gzip代表GNU zip。也經常用來表示gzip這種文件格式。
  • 07_使用tar命令進行文件壓縮
    2.1 tar命令介紹tar命令的功能是將多個文件和目錄打包成一個大文件,後來由於GNU把tar命令和相關壓縮命令結合到一起(比如gzip、bzip2、xz等等),咱們可以直接使用tar命令進行壓縮和解壓縮,因此本文的重點是介紹tar命令進行文件壓縮和解壓縮。
  • Linux下使用tar命令
    解壓語法:tar [主選項+輔選項] 文件或者目錄使用該命令時,主選項是必須要有的,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。主選項:c :創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。相當於打包。
  • linux_學習之檔案與文件系統的壓縮與打包
    fileName 壓縮unzip  fileName.zip 解壓tar 壓縮解壓linux系統常見的壓縮包擴展名有:>•    -d 解壓•    -t 檢查文件是否有誤•    -v 顯示壓縮過程•    -# 壓縮等級1-9(快->慢;大->小)默認使用6註:gzip壓縮完時會將源文件刪掉,解壓完成後會將壓縮文件刪掉;$ gzip -c man.config > man.config.gz   這樣可以保留源文件不被刪除
  • linux基礎命令和使用(基礎入門篇,看完就課上手linux作業系統)
    源文件要使用絕對路徑,不能使用相對路徑,這樣可以方便移動連結文件後,仍然能夠正常使用在 linux中,文件名 和 文件數據 是分開儲存的打包/壓縮tar -cvf 打包文件.tar 被打包的文件 /路徑 打包文件 eg:tar -cvf py.tar 01.py 02.py 03.pytar -xvf 打包文件.tar解包文件eg: tar -xvf py.tar
  • linux打包命令tar詳解
    Linux打包命令之tar詳解1、命令:tara)功能:將多個文件或目錄打包在一起,可通過調用gzip或zip 實現壓縮
  • Linux shell命令總結大全
    (點擊上方快速關注並設置為星標,一起學Python)Linux shell命令應該算是非常入門的東西,但是實際上在使用的時候,會遇到各種各樣的問題
  • 經常使用的CentOS命令總結
    在使用centos或ubuntu linux過程中,經常會使用一些終端命令,現總結如下:◆ 安裝和登錄命令:login、shutdown、halt
  • Linux-tar解壓縮命令
    (如硬碟、網關等等)Linux系統沒有擴展名的概念Linux命令一般格式command [options] [arguments]command   命令名稱options  命令選項  【可選】arguments  命令參數  【可選】分享解壓縮命令-tar(英文全拼
  • Linux常用命令(三)搜索、壓縮與開關重啟命令
    2.7.7 命令的別名使用alisa查看命令的別名。輸入了很長的命令輸錯了,可以使用直接刪除ctrl+y粘貼ctrl+u剪切的內容2.8 壓縮和解壓縮命令在Linux中常見的壓縮格式有十幾種,如:「.zip」,".gz",".bz2",".tar",".tar.gz",".tar.bz2"等。
  • 在 Linux 上壓縮文件的 5 種方法 | Linux 中國
    在 Linux 上有不少用於壓縮文件的命令。最新最有效的一個方法是 xz,但是所有的方法都有節省磁碟空間和維護備份文件供以後使用的優點。在這篇文章中,我們將比較這些壓縮命令並指出顯著的不同。tartar 命令不是專門的壓縮命令。它通常用於將多個文件拉入一個單個的文件中,以便容易地傳輸到另一個系統,或者將文件作為一個相關的組進行備份。
  • 如何在Linux命令行中優化和壓縮JPEG或PNG圖像
    來自:Linux迷  https://www.linuxmi.com/linux-yasuo-jpeg-png.html您有很多圖像,並且想要在將圖像上傳到雲或本地存儲之前優化和壓縮圖像而又不損失其原始質量嗎
  • Linux shell命令總結
    來源丨良許Linux(liangxuxiansheng)Linux shell命令應該算是非常入門的東西,但是實際上在使用的時候
  • Linux基礎命令與總結
    echo www.baidu.com使用$變量的方式提取變量SHELL的值echo $SHELL2、date命令顯示當前系統時間date指定格式顯示當前系統時間date 「+%Y-%m-%d %H-%M-%S」修改當前系統時間date -s 「20190901 8:30:30」查看今天是當年的第幾天