Linux压缩打包命令——tar、zip、unzip
?
打包跟壓縮的區(qū)別:
打包是指將多個(gè)文件或者目錄放在一起,形成一個(gè)總的包,這樣便于保存和傳輸,但是大小是沒有變化的,壓縮是指將一個(gè)或者多個(gè)大文件或者目錄通過壓縮算法使文件的體積變小以達(dá)到壓縮的目的,可以節(jié)省存儲(chǔ)空間,在壓縮的時(shí)候通常是先打包再壓縮;
tar命令
tar命令參數(shù)前面加”-"與不加“-”的區(qū)別:
tar命令參數(shù)前面加不加“-”執(zhí)行命令的結(jié)果是沒有區(qū)別的,區(qū)別只要是在于linux風(fēng)格方面,加“-”屬于System V風(fēng)格,不加“-”屬于BSD風(fēng)格,所以在使用tar命令的時(shí)候它的參數(shù)加不加“-”結(jié)果是一樣的,看個(gè)人的使用方式;
常用參數(shù):
| -z | 是否同時(shí)具有g(shù)z屬性 |
| -j | 是否同時(shí)具有bz2屬性 |
| -J | 是否同時(shí)具有xz屬性 |
| -x | 解壓縮、提取打包的內(nèi)容 |
| -t | 查看壓縮包內(nèi)容 |
| -c | 建立一個(gè)壓縮,打包文檔 |
| -C | 切換到指定目錄,表示指定解壓縮包的內(nèi)容和打包的內(nèi)容存放的目錄 |
| -v | 顯示壓縮或者打包的內(nèi)容 |
| -f | 使用文件名,在f后面要接壓縮后的文件的名字,只要用到tar命令,-f選項(xiàng)是必須要用的,-f參數(shù)在使用的時(shí)候一定排在其他參數(shù)的后面,在最右邊 |
| -p | 保留備份數(shù)據(jù)的原本權(quán)限與屬性,常用于備份(-c)重要的配置文件 |
| -P | 保留絕對路徑 |
?
一、打包
實(shí)例:
a.將/root/下的ceshi.txt文件和anaconda-ks.cfg文件和time.sh文件打包為一個(gè)文件,名稱為“jihe.tar”:
b.查看jihe.tar文件的內(nèi)容:
c.提取jihe.tar文件的內(nèi)容到/opt目錄下:
如果不用“-C”指定目錄則會(huì)提取內(nèi)容到當(dāng)前目錄
二、壓縮
linux主要有三種壓縮方式:
1.gzip:是公認(rèn)的壓縮這速度最快,壓縮大文件的時(shí)候與其他的壓縮方式相比更加明顯,歷史最久,應(yīng)用最廣泛的壓縮方式
2.bzip:壓縮形成的文件小,但是可用性不如gzip
3.xz:是最新的壓縮方式,可以自動(dòng)提供最佳的壓縮率
建議的壓縮的時(shí)候標(biāo)明后綴:
| 參數(shù) | 作用 | 命名方式 |
| -z | 用于gzip壓縮方式 | 文件名.tar.gz |
| -j | 用于bzip2壓縮方式 | 文件名.tar.bz2 |
| -J | 用于xz壓縮方式 | 文件名.tar.xz |
?
實(shí)例:用不同的壓縮方式壓縮/root/目錄下的Golden.apk文件
先查看Golden.apk文件的大小:
可以看到Golden.apk文件的大小為187M
a.用gzip壓縮方式將Golden.apk文件壓縮為Golden.apk.tar.gz文件:
b.用bzip2的壓縮方式將Golden.apk文件壓縮為Golden.apk.tar.bz2文件:
從上圖可以看出紅色方框內(nèi)有報(bào)錯(cuò),這個(gè)報(bào)錯(cuò)的原因是缺少bzip2的包,需要安裝一個(gè)bzip2軟件包
安裝完成之后再重新壓縮:
在壓縮的過程中,我們可以發(fā)現(xiàn):
壓縮速度:gz > bz2 > xz
壓縮率:xz > bz2 > gz
三、解壓
先刪除/root/目錄下的Golden.apk文件:
tar命令式一個(gè)很聰明的命令,我們在解壓的時(shí)候不需要指明自己壓縮的方式它會(huì)自己選擇跟壓縮方式對應(yīng)的方式去解壓,這話說得有點(diǎn)拗口,例:
a.將Golden.apk.tar.gz解壓到當(dāng)前目錄:
在解壓gz壓縮方式壓縮文件的時(shí)候并不需要加上-z,直接用參數(shù)-xf即可,另外兩種壓縮方式在解壓的時(shí)候一樣,因?yàn)閠ar命令會(huì)自動(dòng)選擇,解壓之后壓縮文件還在,如果不指定解壓出來的文件保存在哪里,那么會(huì)直接解壓在當(dāng)前目錄
b.指定解壓出來的文件保存的目錄,將Golden.apk.tar.bz2文件解壓在/opt/目錄下:
補(bǔ)充:
a.在打包和壓縮的過程中,我們有時(shí)候會(huì)看到這樣的語句:tar: 從成員名中刪除開頭的“/”,這個(gè)并不是報(bào)錯(cuò),是因?yàn)闆]有加上-P選項(xiàng),沒有保留原來的絕對路徑去打包或者壓縮,提取打包的內(nèi)容跟解壓一樣,下面舉一個(gè)例子:
將/root/目錄以gzip的方式壓縮為root.tar.gz壓縮文件:
1.沒有加-P選項(xiàng):
2.加上-P選項(xiàng):
解壓的時(shí)候同理,如果在壓縮文件的時(shí)候使用了-P選項(xiàng),那么在解壓的時(shí)候也要加上-P選項(xiàng),不然也會(huì)出現(xiàn)”tar: 從成員名中刪除開頭的“/”“,如下圖:
1.不加-P選項(xiàng)解壓使用了-P選項(xiàng)壓縮/root/后的root.tar.gz文件:
2.加上-P選項(xiàng)解壓使用了-P選項(xiàng)壓縮/root/后的root.tar.gz文件:
b.在使用tar壓縮或者打包的時(shí)候,可以通過增加--exclude來達(dá)到排除指定的文件的目的
將/root/目錄下的harry目錄打包,但是不打包harry目錄下的ha.txt文件,如下圖:
壓縮文件也是同理,想要排除指定的目錄壓縮或者打包也是同理
zip命令和unzip命令
#在使用zip跟unzip命令之前先查看系統(tǒng)有沒有安裝這兩個(gè)命令的包,沒有的話要自己安裝
查看有沒有安裝zip跟unzip命令的命令:
rpm -q zip unzip
如果有安裝了命令則會(huì)顯示出命令的版本號(hào)
zip命令
基本用法:
zip [參數(shù)] [壓縮包名] [壓縮的目錄或者文件的路徑]
常用參數(shù):
| -m | 將文件壓縮后,刪除原文件 |
| -o | 將壓縮文件內(nèi)的所有文件的最新變動(dòng)時(shí)間設(shè)為壓縮的時(shí)間 |
| -q | 安靜模式,在壓縮的時(shí)候不顯示指令執(zhí)行的過程 |
| -r | 遞歸壓縮,將自定目錄下的所有子文件以及文件一起處理 |
| -x | ”文件列表“,壓縮時(shí)排除文件列表中的文件 |
?
實(shí)例:
a.壓縮目錄,將/root/目錄下的harry目錄壓縮為名為harry.zip壓縮包:
1.正常壓縮,不加-q選項(xiàng),顯示壓縮的過程:
2.加上-q選項(xiàng),安靜模式輸出,不顯示壓縮的過程:
b.壓縮多個(gè)文件,將/root/目錄下的ceshi.txt文件和anaconda-ks.cfg文件和Golden.apk文件壓縮為名為jihe.zip的壓縮包:
因?yàn)閴嚎s的全是文件,所以可以不用加上-r選項(xiàng)
c.壓縮文件跟目錄,將/root/下的ceshi.txt文件和anaconda-ks.cfg文件和harry目錄壓縮成名為dajihe.zip的壓縮包:
d.將/root/目錄下的harry目錄壓縮為harry1.zip壓縮包,排除harry目錄下的ha.txt文件:
unzip命令
基本用法:
unzip [參數(shù)] [壓縮文件] ?(-d [目錄]) ?//如果不是用括號(hào)里面的內(nèi)容,則解壓文件在當(dāng)前工作目錄
常用參數(shù):
| -c | 將解壓縮的結(jié)果顯示到屏幕上(顯示每一個(gè)目錄下的每一個(gè)文件的內(nèi)容),同時(shí)對字符做適當(dāng)?shù)霓D(zhuǎn)換,但是并沒有解壓壓縮包 |
| -l | 顯示壓縮文件內(nèi)所包含的文件 |
| -t | 檢查壓縮文件是否正確 |
| -v | 執(zhí)行時(shí)顯示壓縮文件的詳細(xì)信息 |
| -q | 安靜模式,執(zhí)行時(shí)不顯示任何信息 |
| -d | 指定文件解壓后存儲(chǔ)的目錄 |
| -x | 指定不要處理壓縮文件中的那些文件 |
實(shí)例:
a.將harry.zip壓縮包解壓縮的結(jié)果顯示出來:
具體會(huì)顯示到每一個(gè)文件跟每一個(gè)文件的內(nèi)容
b.顯示jihe.zip壓縮包里面鎖包含的文件
c.檢查dajihe.zip壓縮文件是否正確:
全部OK表示全部文件都是正確的
d.不解壓壓縮文件dajihe.zip,查看壓縮包里面的內(nèi)容(查看顯示的文件列表還包含壓縮比率):
#使用-v顯示的信息比使用-l顯示的信息更加詳細(xì)
e.將dajihe.zip壓縮包解壓到/opt/目錄下:
補(bǔ)充:使用r選項(xiàng)增加.tar歸檔文件的內(nèi)容應(yīng)該如何怎么操作?
我們先來了解一下tar命令-r選項(xiàng)的作用:
通過tar --help命令查看幫助
-r選項(xiàng)的作用:把要存檔的文件追加到檔案文件的未尾。例如用戶已經(jīng)作好備份文件,又發(fā)現(xiàn)還有一個(gè)目錄或是一些文件忘記備份了,這時(shí)可以使用該選項(xiàng),將忘記的目錄或文件追加到備份文件中
使用實(shí)例:
看上圖,可以看到我ops用戶家目錄下標(biāo)記了一個(gè)文件,一個(gè)目錄,我現(xiàn)在先將目錄歸檔,然后再將文件追加到檔案里面
1.歸檔操作
生成.tar文件,目錄歸檔完畢!
2.將calculating_time.sh追加進(jìn)入.tar文件中
3.驗(yàn)證
a.查看.tar文件的歸檔信息
可以看到calculating_time.sh文件已經(jīng)被追加到檔案的末尾了
b.提取Check_Configuration_20201118_PM.tar 到/mnt目錄下
使用-r選項(xiàng)追加文件至.tar文件成功
總結(jié)
以上是生活随笔為你收集整理的Linux压缩打包命令——tar、zip、unzip的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对整个图像进行透视变换
- 下一篇: 高性能Linux架构实战 [高俊峰] 笔