? ? ? 本節我們主要學習Linux 上常用的壓縮/解壓工具,主要講解 zip,rar,tar 的使用,一級壓縮與解壓常用組合。
1.概念講解:
? ? ?首先簡單介紹常見的壓縮組合:
文件后綴名 ? ? ? ? ? ??說明
*.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.學會zip壓縮打包:
? ?$ zip -r -q -o shiyanlou.zip /home/shiyanlou
? ?$ du -h shiyanlou.zip
? ?$ file shiyanlou.zip
? ? 第一行命令中,-r參數表示遞歸打包包含子目錄的全部內容,-q參數表示為安靜模式,即不向屏幕輸出信息,-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
? ? ? 添加了一個參數用于設置壓縮級別-[1-9],1 表示最快壓縮但體積大,9 表示體積最小但耗時最久。最后那個-x是為了排除我們上一次創建的 zip 文件,否則又會被打包進這一次的壓縮文件中,注意:這里只能使用絕對路徑,否則不起作用。
3.創建加密zip包:
? ?使用-e參數可以創建加密壓縮包:
? ?代碼如下:
? ?$ zip -r -e -o shiyanlou_encryption.zip/home/shiyanlou
? ? 如果在不加處理的情況下,在Linux 上編輯的文本,在 Windows 系統上打開可能看起來是沒有換行的。如果你想讓你在 Linux 創建的 zip 壓縮文件在 Windows 上解壓后沒有任何問題,那么你還需要對命令做一些修改:
? ?$ zip -r -l -o shiyanlou.zip /home/shiyanlou
4.使用unzip命令解壓縮zip文件:
? ?將shiyanlou.zip解壓到當前目錄:
? ?$ unzip shiyanlou.zip
? ?使用安靜模式,將文件解壓到指定目錄:
? ?$ unzip -q shiyanlou.zip -d ziptest
5.rar打包解壓命令:
安裝: $ sudo apt-get update
? ? ? ? ? ? ?$ sudo apt-get install rar unrar
從指定文件或目錄創建壓縮包:
? ? ?$ 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 原本只是一個打包工具,只是同時還是實現了對 7z、gzip、xz、bzip2 等工具的支持。
創建:$ tar -cf shiyanlou.tar ~
? ? ? -c表示創建一個tar 包文件,-f用于指定創建的文件名,注意文件名必須緊跟在-f參數之后,比如不能寫成tar -fc shiyanlou.tar,可以寫成tar -f shiyanlou.tar -c ~。-v參數以可視的的方式輸出打包的文件。上面會自動去掉表示絕對路徑的/,也可以使用-P保留絕對路徑符。
解包一個文件(-x參數)到指定路徑的已存在目錄(-C參數):
? ? $ mkdir tardir
? ? $ tar -tf shiyanlou.tar -c tardir
只查看不解包文件-t參數:
? ?$ tar -tf shiyanlou.tar
保留文件屬性和跟隨鏈接(符號鏈接或軟鏈接),有時候我們使用tar 備份文件當你在其他主機還原時希望保留文件的屬性(-p參數)和備份鏈接指向的源文件而不是鏈接本身(-h參數):
? ?$ tar -cphf ect.tar /ect
只需要在創建tar 文件的基礎上添加-z參數,使用gzip來壓縮文件:
? ?$ tar -czf shiyanlou.tar.gz ~
解壓*.tar.gz文件:
? ? $ tar -xzf shiyanlou.tar.gz
壓縮文件格式 ? ??參數
*.tar.gz ? ? ? ? ? ? ? ? ? -z
*.tar.xz ? ? ? ? ? ? ? ? ? -J
*tar.bz2 ? ? ? ? ? ? ? ? ?-j
常用命令:
? ? ·zip:
o打包:zip something.zip something (目錄請加 -r 參數)
o解包:unzip something
o指定路徑:-d 參數
? ? ?·tar:
o打包:tar -zcvf something.tar something
o解包:tar -zxvf something.tar
o指定路徑:-C 參數