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