? ? ? 本節(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ù)