首先欺嗤,弄清楚兩個(gè)概念:打包和壓縮参萄。
打包:將一大堆文件或目錄變成一個(gè)總的文件。
壓縮:將一個(gè)大的文件通過一些壓縮算法變成一個(gè)小的文件煎饼。
為什么要區(qū)分這兩個(gè)概念呢讹挎?這源于 Linux 中很多壓縮程序只能針對(duì)一個(gè)文件進(jìn)行壓縮,這樣當(dāng)你想要壓縮一大堆文件時(shí),你得先將這一大堆文件先打成一個(gè)包(tar命令)筒溃,然后再用壓縮程序進(jìn)行壓縮(gzip bzip2命令)马篮。
打包
1. tar(英文全拼:tape archive )
- 語法:tar [主選項(xiàng)+輔選項(xiàng)] 文件或目錄
使用該命令時(shí),主選項(xiàng)必須有铡羡,它告訴tar要做什么事情积蔚,輔選項(xiàng)是輔助使用的意鲸,可以選用烦周。
主選項(xiàng):【一條命令以下5個(gè)參數(shù)只能有一個(gè)】
-c: --create 新建一個(gè)壓縮文檔,即打包
-x: --extract,--get解壓文件
-t: --list,查看壓縮文檔里的所有內(nèi)容
-r:--append 向壓縮文檔里追加文件
-u:--update 更新原壓縮包中的文件
輔助選項(xiàng):
-z:是否同時(shí)具有g(shù)zip的屬性怎顾?即是否需要用gzip壓縮或解壓读慎?一般格式為xxx.tar.gz或xx.tgz
-j:是否同時(shí)具有bzip2的屬性?即是否需要用bzip2壓縮或解壓槐雾?一般格式為xx.tar.bz2
-v:顯示操作過程夭委!這個(gè)參數(shù)很常用
-f:使用文檔名,注意:
在f之后要立即接文檔名募强,不要再加其他參數(shù)株灸!
-C:切換到指定目錄
--exclude FILE:在壓縮過程中,不要將FILE打包 - 習(xí)慣上以.tar后綴代表tar包擎值,用xxx.tar.gz或.tgz代表gzip壓縮過的tar文件慌烧,用.tar.bz2代表bzip2壓縮過的tar文件。
# 將img1和img2兩個(gè)文件夾打包成img.tar鸠儿,僅打包不壓縮
> tar -cvf img.tar img1 img2
# 將img1和img2兩個(gè)文件夾打包成img.tar.gz屹蚊,打包后,以gzip壓縮
> tar -zcvf img.tar.gz img1/ img2/
# 將img1和img2兩個(gè)文件夾打包成img.tar.bz2进每,打包后汹粤,以bzip2來壓縮
> tar -jcvf img.tar.bz2 img1 img2
# 不解壓的情況下查看img.tar中的所有內(nèi)容
> tar -tf img.tar
# 不解壓的情況下查看img.tar中的所有內(nèi)容(包括文件的詳細(xì)內(nèi)容)
> tar -vtf img.tar
# 將img.tar解壓到temp目錄
> cd temp/
> tar -xf img.tar
# 只解壓img.tar中的img1
> tar -xf ../img.tar img1
壓縮
上面的tar命令既可以打包,同時(shí)也實(shí)現(xiàn)了壓縮的功能田晚。