Linux 打包及壓縮命令使用方法總結(jié)
點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)??
來(lái)源:https://tanjuntao.github.io/
1. 概覽
在這篇文章中,我將總結(jié) Linux 系統(tǒng)下面常見(jiàn)的幾種壓縮工具,包括它們的壓縮命令、解壓縮命令、特殊參數(shù)等,同時(shí),我還將介紹打包命令 tar,以及如何將其與壓縮命令同時(shí)使用。
Linux 下面的壓縮命令主要有下面幾個(gè):
zip,對(duì)應(yīng)壓縮文件格式:.zipgzip,對(duì)應(yīng)壓縮文件格式:.gzbzip2,對(duì)應(yīng)壓縮文件格式:.bz2xz,對(duì)應(yīng)壓縮文件格式:.xz
打包命令:
tar,對(duì)應(yīng)壓縮文件格式:
.tar如果和 gzip一塊使用:.tar.gz或者.tgz如果和 bzip2一塊使用:.tar.bz2如果和 xz一塊使用:.tar.xz
所謂打包,就是將一個(gè)文件、或者一堆文件打包成一個(gè)單一文件的過(guò)程。
這里還需要說(shuō)明一個(gè)術(shù)語(yǔ):壓縮率。其計(jì)算公式是:(壓縮后文件體積) / (壓縮前文件體積)。
還有一點(diǎn)是:gzip bzip2 xz 這幾個(gè)命令都只能對(duì)但一個(gè)文件做壓縮,不能壓縮一個(gè)目錄,壓縮目錄需要通過(guò) tar 配合這幾個(gè)壓縮命令來(lái)處理,或者使用 zip 命令
zip 命令能提供的功能和 tar 非常類似,更詳細(xì)的使用方法使用 tldr zip & tldr unzip 來(lái)查看。
2. 使用方法
2.1 gzip 命令
gzip 會(huì)就地壓縮,也就是源文件會(huì)被壓縮文件替代。
壓縮
gzip?
執(zhí)行完上述命令,會(huì)在當(dāng)前目錄下生成 file_name.gz 文件。
壓縮命令有個(gè)比較有用的參數(shù):
-v: 可以顯示壓縮后的壓縮率
gzip?-v?
解壓縮
gzip?-d?.gz
或者
gunzip?.gz
會(huì)在當(dāng)前目錄下生成 ,源壓縮文件不在了。
2.2 bzip2 命令
默認(rèn)情況下,bzip2 命令也是就地壓縮,壓縮后源文件將會(huì)被替代。
使用方法和 gzip 基本一樣,但是能提供更好的壓縮率,當(dāng)然,付出的代價(jià)就是壓縮時(shí)間更長(zhǎng)。
壓縮
bzip2?
或者引入 -v 參數(shù)查看壓縮率:
bzip2?-v?
將在當(dāng)前目錄下生成 文件。
解壓縮
bzip2?-d?.bz2
或者
bunzip2?.bz2
2.3 xz 命令
默認(rèn)情況下,xz 命令也是就地壓縮,原始文件將被覆蓋。
使用方法和前面提到的 gzip bzip2 類似,參數(shù)也幾乎是一樣的。
壓縮
xz?
或者加上 -v 參數(shù)查看壓縮率:
xz?-v?
壓縮完后,會(huì)在當(dāng)前目錄下生成 文件。
這時(shí)可以使用 -l 參數(shù),來(lái)查看壓縮前后的文件對(duì)比信息:
xz?-l?.xz
舉個(gè)例子如下:
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?.xz
注意,在 xz 命令這里,沒(méi)有 xunz 這種命令哦。
2.4 zip 命令
zip 命令和前面的 gzip bzip2 xz 不一樣,它壓縮后不會(huì)覆蓋原有的文件。
壓縮單個(gè)文件
zip?.zip?
或者加入 -v 參數(shù),可以查看壓縮率:
zip?-v?.zip?
執(zhí)行上述命令,將會(huì)在當(dāng)前目錄下新生成 文件,原有的 將繼續(xù)保留。
壓縮多個(gè)文件
zip?.zip?a.txt?b.txt?c.txt
會(huì)將 a.txt, b.txt, c.txt 同時(shí)壓縮到 compresed.zip 文件中。
壓縮目錄:
zip?-r?dir.zip?
解壓縮
unzip?.zip
如果這個(gè) .zip文件是從多個(gè)單一文件通過(guò)zip命令壓縮來(lái)的,那么執(zhí)行unzip將會(huì)傾倒里面所有的文件到當(dāng)前文件夾;如果這個(gè) .zip文件是從某個(gè)目錄通過(guò)zip -r壓縮來(lái)的,那么執(zhí)行unzip將會(huì)在當(dāng)前目錄下生成一個(gè)compresed名字的目錄,目錄里面的所有文件不會(huì)被傾倒在當(dāng)前目錄。
2.5 tar 命令
tar 命令的參數(shù)可以說(shuō)是 Linux 上面最復(fù)雜且最不容易記憶的幾個(gè)之一了,完整的 tar 命令的使用方法可以足夠?qū)懥硗庖黄恼隆T谶@里,我主要將介紹 tar 命令最核心的參數(shù)。
先解釋下 tar 的作用:tar 是打包命令,也就是將一系列文件,或者某個(gè)文件夾,打包成單一文件。如果配合前面介紹的 3 種壓縮命令 gzip bzip2 xz (不包含 zip ),那么其可以完成 打包+壓縮 的功能。
tar 執(zhí)行完后,原有文件或者目錄將保留。
下面先介紹 tar 最常用的參數(shù):
-c: create 的意思,創(chuàng)建 tar 文件;-t: 查看 tar 文件;-x: 解打包或者解壓縮;-z: 用gzip來(lái)壓縮;-j: 用bzip2來(lái)壓縮;-J: 用xz來(lái)壓縮;-f: 后面接需要生成的文件名;-v: verbose 的意思,顯示打包壓縮或者解打包解壓縮過(guò)程中的詳細(xì)信息;-C: 后面接某個(gè)目錄,將文件加壓縮到該特定目錄下(默認(rèn)是解壓縮在當(dāng)前目錄)
只打包文件不壓縮
打包單個(gè)或多個(gè)文件:
tar?-cv?-f?target.tar?a.txt?b.txt?c.txt?d.txt
打包單個(gè)目錄或者多個(gè)目錄:
tar?-cv?-f?target.tar?dir1?dir2?dir3
同時(shí)打包文件和目錄:
tar?-cv?-f?target.tar?dir1?dir2?a.txt?b.txt?c.txt
打包同時(shí)用 gzip 壓縮
tar?-cvz?-f?target.tar.gz?dir1?dir2?a.txt
打包同時(shí)使用 bzip2 壓縮
tar?-cvj?-f?target.tar.bz?dir1?dir2?a.txt
打包同時(shí)使用 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
上述命令將會(huì)在當(dāng)前目錄下解壓縮,也就是 target.tar.gz 里面的文件會(huì)解壓縮到當(dāng)前目錄下。
如果要解壓縮到指定目錄怎么做呢?
使用 -C 參數(shù):
tar?-xvz?-f?target.tar.gz?-C?~/test
上述命令,會(huì)將 target.tar.gz 里面的所有文件解壓到 ~/test 目錄下。
總結(jié)下:tar 命令可以將任意的文件和目錄打包成一個(gè)單一文件,解壓縮時(shí),默認(rèn)是將 tar ball 里面的所有文件傾倒在當(dāng)前目錄,如果需要傾倒到其它目錄,使用 -C 參數(shù)。
2.?手把手10分鐘實(shí)現(xiàn) Spring Boot 發(fā)送郵件功能
最近面試BAT,整理一份面試資料《Java面試BATJ通關(guān)手冊(cè)》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。
獲取方式:點(diǎn)“在看”,關(guān)注公眾號(hào)并回復(fù)?Java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。
文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。
謝謝支持喲 (*^__^*)

