第六節(jié):文件打包與壓縮

? ? ? 本節(jié)我們主要學(xué)習(xí)Linux 上常用的壓縮/解壓工具,主要講解 zip,rar,tar 的使用,一級(jí)壓縮與解壓常用組合。

1.概念講解:

? ? ?首先簡(jiǎn)單介紹常見的壓縮組合:

文件后綴名 ? ? ? ? ? ??說(shuō)明

*.zip ? ? ? ? ? ? ? ? ? ? ?zip 程序打包壓縮的文件

*.rar ? ? ? ? ? ? ? ? ? ? ?rar 程序壓縮的文件

*.7z ? ? ? ? ? ? ? ? ? ? ? ?7zip 程序壓縮的文件

*.tar ? ? ? ? ? ? ? ? ? ? ? ?tar 程序打包,未壓縮的文件

*.gz ? ? ? ? ? ? ? ? ? ? ? ?gzip 程序(GNU zip)壓縮的文件

*.xz ? ? ? ? ? ? ? ? ? ? ? ? xz 程序壓縮的文件

*.bz2 ? ? ? ? ? ? ? ? ? ? ?bzip2 程序壓縮的文件

*.tar. ? ? ? ? ? ? ? ? ? ? ? gztar 打包,gzip 程序壓縮的文件

*.tar. ? ? ? ? ? ? ? ? ? ? ? xztar 打包,xz 程序壓縮的文件

*tar. ? ? ? ? ? ? ? ? ? ? ? ?bz2tar 打包,bzip2 程序壓縮的文件

*.tar.7z ? ? ? ? ? ? ? ? ?tar 打包,7z 程序壓縮的文件

2.學(xué)會(huì)zip壓縮打包:

? ?$ zip -r -q -o shiyanlou.zip /home/shiyanlou

? ?$ du -h shiyanlou.zip

? ?$ file shiyanlou.zip

? ? 第一行命令中,-r參數(shù)表示遞歸打包包含子目錄的全部?jī)?nèi)容,-q參數(shù)表示為安靜模式,即不向屏幕輸出信息,-o,表示輸出文件,需在其后緊跟打包輸出文件名。后面使用du命令查看打包后文件的大小

? ?$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/*.zip

? ?$ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/*.zip

? ? ? 添加了一個(gè)參數(shù)用于設(shè)置壓縮級(jí)別-[1-9],1 表示最快壓縮但體積大,9 表示體積最小但耗時(shí)最久。最后那個(gè)-x是為了排除我們上一次創(chuàng)建的 zip 文件,否則又會(huì)被打包進(jìn)這一次的壓縮文件中,注意:這里只能使用絕對(duì)路徑,否則不起作用

3.創(chuàng)建加密zip包:

? ?使用-e參數(shù)可以創(chuàng)建加密壓縮包:

? ?代碼如下:

? ?$ zip -r -e -o shiyanlou_encryption.zip/home/shiyanlou

? ? 如果在不加處理的情況下,在Linux 上編輯的文本,在 Windows 系統(tǒng)上打開可能看起來(lái)是沒(méi)有換行的。如果你想讓你在 Linux 創(chuàng)建的 zip 壓縮文件在 Windows 上解壓后沒(méi)有任何問(wèn)題,那么你還需要對(duì)命令做一些修改:

? ?$ zip -r -l -o shiyanlou.zip /home/shiyanlou

4.使用unzip命令解壓縮zip文件:

? ?將shiyanlou.zip解壓到當(dāng)前目錄:

? ?$ unzip shiyanlou.zip

? ?使用安靜模式,將文件解壓到指定目錄:

? ?$ unzip -q shiyanlou.zip -d ziptest


5.rar打包解壓命令:

安裝: $ sudo apt-get update

? ? ? ? ? ? ?$ sudo apt-get install rar unrar

從指定文件或目錄創(chuàng)建壓縮包:

? ? ?$ rm *.zip

? ? ?$ rar a shiyanlou.rar.

? ?刪除: ? $ rar d shiyanlou.rar .zshrc

? ?查看: ? $ rar l shiyanlou.rar

? ? 全路徑解壓:$ unrar x shiyanlou.rar

? ? 去掉路徑解壓:$ mkdir tmp

$ unrar e shiyanlou.rar tmp/

6.tar打包工具

? ? ?在Linux 上面更常用的是tar工具,tar 原本只是一個(gè)打包工具,只是同時(shí)還是實(shí)現(xiàn)了對(duì) 7z、gzip、xz、bzip2 等工具的支持。

創(chuàng)建:$ tar -cf shiyanlou.tar ~


? ? ? -c表示創(chuàng)建一個(gè)tar 包文件,-f用于指定創(chuàng)建的文件名,注意文件名必須緊跟在-f參數(shù)之后,比如不能寫成tar -fc shiyanlou.tar,可以寫成tar -f shiyanlou.tar -c ~。-v參數(shù)以可視的的方式輸出打包的文件。上面會(huì)自動(dòng)去掉表示絕對(duì)路徑的/,也可以使用-P保留絕對(duì)路徑符。

解包一個(gè)文件(-x參數(shù))到指定路徑的已存在目錄(-C參數(shù)):

? ? $ mkdir tardir

? ? $ tar -tf shiyanlou.tar -c tardir

只查看不解包文件-t參數(shù):

? ?$ tar -tf shiyanlou.tar

保留文件屬性和跟隨鏈接(符號(hào)鏈接或軟鏈接),有時(shí)候我們使用tar 備份文件當(dāng)你在其他主機(jī)還原時(shí)希望保留文件的屬性(-p參數(shù))和備份鏈接指向的源文件而不是鏈接本身(-h參數(shù)):

? ?$ tar -cphf ect.tar /ect

只需要在創(chuàng)建tar 文件的基礎(chǔ)上添加-z參數(shù),使用gzip來(lái)壓縮文件:

? ?$ tar -czf shiyanlou.tar.gz ~

解壓*.tar.gz文件:

? ? $ tar -xzf shiyanlou.tar.gz

壓縮文件格式 ? ??參數(shù)

*.tar.gz ? ? ? ? ? ? ? ? ? -z

*.tar.xz ? ? ? ? ? ? ? ? ? -J

*tar.bz2 ? ? ? ? ? ? ? ? ?-j

常用命令:

? ? ·zip:

o打包:zip something.zip something (目錄請(qǐng)加 -r 參數(shù))

o解包:unzip something

o指定路徑:-d 參數(shù)

? ? ?·tar:

o打包:tar -zcvf something.tar something

o解包:tar -zxvf something.tar

o指定路徑:-C 參數(shù)


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容