馬哥學習-----李洋個人筆記之壓縮,解壓縮及歸檔
-v 詳細信息
-d 等於 uncompress 默認只識別 .Z 如果使用別的後綴,會導致不識別,解壓縮失敗。
也可以使用 -d -c 壓縮包 > 解壓縮的形式,解壓被改了後綴的壓縮包.這種方式不會覆蓋源文件.
優點是這種方式不會覆蓋源文件.缺點是會丟失文件的原有權限,新的權限基於當前umask碼而定。
-c 輸出的標準輸出 再結合> 生成文件 舉例:
compress -c pssswd > passwd.Z
壓縮完成。
uncompress 解壓縮
gzip 格式:gzip 文件名 壓縮
-d 或 gunzip 解壓 只識別.gz
-c 文件名 > 壓縮包 壓縮後保持原文件不變,但權限會根據umask變化
-cd 壓縮包 > 文件名 或 zcat 壓縮包 > 文件名 解壓後保持壓縮包不變,但權限會根據umask變化
-v 詳細信息
-# 表示指定壓縮比,默認是6 ,數字越小,表示壓縮比越小,速度越快。反之,數字越大,壓縮比越大,速度卻越慢。
gzip -9 -c passwd > passwd.gz 是壓縮比最大的.
zcat:不顯式解壓縮的前提下查看文本文件內容,舉例
zcat messages.gz > messages
bzip2
-k 保持原文件或原壓縮包不變
-d 或 bunzip2 解壓
-c命令.用重定向 >也能解壓,但會丟失權限.新的權限同樣取決於當前的umask碼.
-cd 壓縮包 > 文件名 可以實現預覽壓縮包的功能,解壓後保持壓縮包不變,但權限會根據umask變化
-v 詳細信息
-# 表示指定壓縮比,默認是9,數字越小,表示壓縮比越小,速度越快。反之,數字越大,壓縮比越大,速度卻越慢。
bzcat:不顯式解壓縮的前提下查看文本文件內容
xz
-k 保持原文件或原壓縮包不變
-d 或 unxz 解壓
-c 文件名 > 壓縮包 壓縮後保持原文件不變,但權限會根據umask變化
-cd 壓縮包 > 文件名 或 xzcat 壓縮包 > 文件名 解壓後保持壓縮包不變,但權限會根據umask變化
-v 詳細信息
-# 表示指定壓縮比,默認是6,數字越小,表示壓縮比越小,速度越快。反之,數字越大,壓縮比越大,速度卻越慢。
xz在 compress gzip bzip2 xz這幾種壓縮工具中,壓縮比例是最高的.而它們的共同點是:
它們只負責壓縮及解壓縮,沒有打包(歸檔)的功能.原文件和壓縮後的文件也是一一對應的關系,
zip 打包壓縮工具,默認後綴名為.zip
-r 壓縮包名 源文件…… 兩者都可以是目錄,舉例
zip –r /testdir/sysconfig /etc/sysconfig/
unzip 壓縮包名 解壓縮默認在當前目錄進行,如果壓縮包內有目錄文件,則先創建再解壓,不會覆蓋根目錄.
cat /var/log/messages | zip messages -
用cat打開messages,並通過管道傳遞給zip進行壓縮,壓縮後的位置是當前目錄,名字為messages. - 在這裏的意思是
/var/log/messages,因為zip需要兩個參數,即 壓縮包名及源文件,一些命令可以用 - 來表示第二個參數.
unzip -p message > message 解壓縮的固定格式.
tar (Tape ARchive,磁帶歸檔的縮寫) 格式 tar 選項 壓縮後的名字 源文件
選項中的-可以不要
-c 創建包
-v 詳細過程
-f 指定生成後的文件名 源文件……
tar -cvf mage.tar *
將當前目錄下的所有文件打包壓縮為 mage.tar
tar -tvf mage.tar 預覽歸檔文件(只要涉及到解壓縮文件,必須加上f選項)
tar -r /etc/fstab -f mage.tar 往歸檔中增加文件,在執行後會提示,已經將最前方的根號(/)去掉,避免解壓縮的
時候,覆蓋了源文件. 如上例,不去掉的話,那麽解壓縮這個包,會直接覆蓋/etc目錄.
另外,被其他的壓縮工具再次壓縮包後,不可以再往裏面添加包了.但可以解一個或全部壓縮.
tar --delete etc/fstab -f mage.tar 從歸檔中減少文件
格式 先指定要刪除的文件名或目錄.再指定從哪個文件裏刪.
tar -xv passwd -f mage.tar 從歸檔中解出指定的文件
格式 先指定要解壓的文件名或目錄.再指定從哪個文件裏解壓.
tar -xvf mage.tar 從歸檔中解出所有文件
tar xvf mage.tar -C /app2 解壓到指定目錄,默認為當前目錄
-j 使用bzip2 壓縮或解壓縮(可省略)
-J 使用xz 壓縮或解壓縮(可省略)
-z 使用gzip 壓縮或解壓縮(可省略)
tar jcvf mage.tar.bz2 *
先使用bzip2工具壓縮,再使用tar工具壓縮,將當前目錄下的所有文件都壓縮成名字為mage.tar.bz2的壓縮包.
tar xvf mage.tar.bz2
將mage.tar.bz2文件先用bzip2解壓縮,再使用tar解壓到當前目錄下.
分割及合並文件
T選項指定輸入文件,-X選項指定包含要排除的文件列表
tar zcvf mybackup.tgz -T /root/includefilelist -X /root/excludefilelist
將/root/includefilelist壓縮為mybackup.tgz,但是不要/root/includefilelist當中的/root/excludefilelist.
分割大的 tar 文件為多份小文件:
split –b Size(指定大小) –d tar-file-name(壓縮包名字) prefix-name(拆分後的名字)拆分後的小壓縮
包,只能看出是壓縮類型文件(file+文件名查看),但是不能單獨解壓,只能合並再一起才能正常解壓。
split -b 1M –d mybackup.tgz mybackup-parts
將mybackup.tgz壓縮包,按照每份1M的大小分割為mybackup-parts的小壓縮包。
split -b 1M mybackup.tgz mybackup-parts
合並:
cat mybackup-parts* > mybackup.tar.gz
將所有以mybackup-parts開頭的壓縮文件,合並為名字是mybackup.tar.gz的壓縮包。
cpio 通過重定向的方式將文件進行打包備份,還原恢復的工具.可以解壓以“.cpio”或者“.tar”結尾的文件
cpio [選項] > 文件名或者設備名
cpio [選項] < 文件名或者設備名
選項:
-o 將文件拷貝打包成文件或者將文件輸出到設備上
-i 解包,將打包文件解壓或將設備上的備份還原到系統
-t 預覽,查看文件內容或者輸出到設備上的文件內容
-v 顯示打包過程中的文件名稱。
-d 解包生成目錄,在cpio還原時,自動的建立目錄
-c 一種較新的存儲方式
find |cpio -ov > find.cpio 將查找到的數據管道給cpio,然後歸檔打包為find.cpio
cpio -tv < find.cpio 或 cat find.cpio |cpio -tv 預覽find.cpio當中的文件.
cpio -idv < find.cpio 或 cat find.cpio |cpio -idv 解開find.cpio當中的文件.
歸檔和解壓的時候,原文件的權限也會被保存.cpio解文件,自己不會帶跟目錄/.可以手動指定目錄.
馬哥學習-----李洋個人筆記之壓縮,解壓縮及歸檔