Linux打包壓縮解壓工具

上善若水~小輝 發表於 2020-09-15

第1章      Linux 打包壓縮解壓工具一、壓縮、解壓工具

壓縮、解壓工具

 

用法壓縮工具壓縮後壓縮包格式解壓縮(預設不保留原始檔)保留原檔案壓縮-c :將壓縮結果列印到螢幕上保留壓縮檔案解壓*zcat :將解壓結果列印到螢幕上強制壓縮(預設不壓縮硬連結)顯示詳細過程壓縮比-#(數字越大,壓縮比越高,速度越慢檔案越小)
compress(壓縮比最小,檔案最大) .Z -duncompress -c > X(>相當於建立檔案,許可權改變) zcat X.Z > X(>相當於建立檔案,許可權改變) -f -v
gzip .gz -dgunzip -c > X zcat X.gz > X -f -v -1 --fast-6 (預設)-9 --best
bzip2(壓縮比最大,檔案最小) .bz2 -dbunzip -c > X -k (許可權不變) bzcat X.gz > X -k -f -v -1 --fast-9 --best (預設)
xz .xz -d -c > X -k(許可權不變) xzcat X.gz > X -k -f -v -1 --fast-6 (預設)-9 --best

compress/uncompress

壓縮檔案,會刪除原來檔案,生成壓縮檔案

compress [-dfvcVr] [-b maxbits] [file ...]

 -d: 解壓縮,相當於uncompress
 -c: 結果輸出至標準輸出,不刪除原檔案
 -v: 顯示詳情
uncompress :解壓縮
zcatfile.Z>file檢視檔案不解縮

 

img

gzip/gunzip

壓縮檔案,會刪除原來檔案,生成壓縮檔案

gzip[OPTION]... FILE ...

 -d:解壓縮,相當於gunzip
 -c:結果輸出至標準輸出,保留原檔案不改變
 -#:1-9,指定壓縮比,值越大壓縮比越大

zcat:不顯式解壓縮的前提下檢視文字檔案內容

壓縮帶特殊符號的檔案,即:-f -f1 -f2

 [[email protected]]#ls
 bigfile.Z  f  -f  -f1  f1.txt.gz  -f2  m.gz
 [[email protected]]#gzip -- -f1 -f2
 [[email protected]]#ls
 bigfile.Z  f  -f  -f1.gz  f1.txt.gz  -f2.gz  m.gz

img

bzip2/bunzip2/bzcat

bzip2 [OPTION]... FILE ...

 -k:keep, 保留原檔案
 -d:解壓縮
 -#:1-9,壓縮比,預設為9

bzcat:不顯式解壓縮的前提下檢視文字檔案內容

img

xz/unxz/xzcat

xz[OPTION]... FILE ...

 -k: keep, 保留原檔案
 -d:解壓縮
 -#:1-9,壓縮比,預設為6

unxz file.xz 解壓縮

xzcat: 不顯式解壓縮的前提下檢視文字檔案內容

img

zip/unzip

打包壓縮

 zip –r  /backup/sysconfig   /etc/sysconfig/

解包解壓縮

 unzip  sysconfig.zip
 cat /var/log/messages | zip messages -
 unzip -p message > message

img

二、打包工具

tar工具

-f 包名,所有用法都要和-f組合 
-c -f 建立包名字  原檔案(可以指定多個)  
 -t -f 包名字   顯示包中的檔名  
 -tv -f 詳細顯示包中的檔名 
 -r -f 包名字 新檔名(可以指定多個),向包裡放指定檔案  
 --delete -f 包名字 被刪除的檔名(可以指定多個),從包中刪除指定檔案 
 -x -f 包名字 解出所有的檔案到當前目錄,把包中所有檔案移出,解壓包  
 -x -f 包名字 檔名 解所指定的檔案到當前目錄,從包中移出指定檔案 
 -C 解包到指定目錄  
 -v 詳細資訊 
 -Jcf 建立包的名字(.tar.xz) 原檔案(可以指定多個) 打包並用xz壓縮  
 -jcf 建立包的名字(.tar.bz2) 原檔案(可以指定多個) 打包並用bzip壓縮 
 -zcf 建立包的名字(.tar.gz) 原檔案(可以指定多個) 打包並用gzip壓縮 
 -T 指定個列表,包含需要被打包的檔案,以換行符為間隔  
 -X 指定個排除列表,以換行符為間隔

-exclude 排除檔案

 tar zcvf/root/a3.tgz --exclude=/app/host1 --exclude=/app/host2 /app

split::分割一個檔案為多個檔案

分割大的tar 檔案為多份小檔案

 split –b Size –d tar-file-name  prefix-name
 split -b 1M  –dmybackup.tgz  mybackup-parts
 split -b 1M  mybackup.tgz  mybackup-parts

合併:

 cat mybackup-parts* > mybackup.tar.gz

img

總結:compress gzip bzip2都只能壓縮檔案,不能壓縮目錄,而tar可以打包多個目錄並進行壓縮。

cpio(不常用)

功能:複製檔案從或到歸檔

cpio命令是通過重定向的方式將檔案進行打包備份,還原恢復的工具,它可以解壓以“.cpio”或者“.tar”結尾的檔案

cpio[選項] > 檔名或者裝置名

cpio[選項] < 檔名或者裝置名

選項

 
-o 將檔案拷貝打包成檔案或者將檔案輸出到裝置上
 -O filename輸出到指定的歸檔檔名
 -A向已存在的歸檔檔案中追加檔案
 -i解包,將打包檔案解壓或將裝置上的備份還原到系統
 -I filename對指定的歸檔檔名解壓
 -t預覽,檢視檔案內容或者輸出到裝置上的檔案內容
 -F filename使用指定的檔名替代標準輸入或輸出
 -d 解包生成目錄,在cpio還原時,自動的建立目錄
 -v 顯示打包過程中的檔名稱

示例:

 將etc目錄備份:
 find ./etc  -print |cpio -ov  > bak.cpio

 

 將/data內容追加bak.cpio
 find /data | cpio -oA -F bak.cpio
 內容預覽
 cpio -tv< etc.cpio
 解包檔案
 cpio -idv< etc.cpio

 轉載https://www.cnblogs.com/struggle-1216/