壓縮、解壓縮及歸檔工具有很多,今天小編就整理幾個大家較為常用的。
compress gzip bzip2 xz
zip tar cpio
一、壓縮、解壓工具
用法 壓縮 工具 |
壓縮后 壓縮包格式 |
解壓縮 (默認不保留源文件) |
保留原文件壓縮 -c :將壓縮結果打印到屏幕上 |
保留壓縮文件解壓 *zcat :將解壓結果打印到屏幕上 |
強制壓縮(默認不壓縮硬鏈接) |
顯示詳細過程 |
壓縮比 -#(數字越大,壓縮比越高,速度越慢 文件越小) |
compress (壓縮比最小,文件最大) |
.Z |
-d uncompress |
-c > X (>相當於創建文件,權限改變) |
zcat X.Z > X (>相當於創建文件,權限改變) |
-f |
-v |
無 |
gzip |
.gz |
-d gunzip |
-c > X
|
zcat X.gz > X |
-f |
-v |
-1 --fast -6 (默認) -9 --best |
bzip2(壓縮比最大,文件最小) |
.bz2 |
-d bunzip |
-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查看文件不解縮
gzip/gunzip
壓縮文件,會刪除原來文件,生成壓縮文件
gzip[OPTION]... FILE ...
-d:解壓縮,相當於gunzip -c:結果輸出至標准輸出,保留原文件不改變 -#:1-9,指定壓縮比,值越大壓縮比越大
zcat:不顯式解壓縮的前提下查看文本文件內容
壓縮帶特殊符號的文件,即:-f -f1 -f2
[root@centos17data]#ls bigfile.Z f -f -f1 f1.txt.gz -f2 m.gz [root@centos17data]#gzip -- -f1 -f2 [root@centos17data]#ls bigfile.Z f -f -f1.gz f1.txt.gz -f2.gz m.gz
bzip2/bunzip2/bzcat
bzip2 [OPTION]... FILE ...
-k:keep, 保留原文件 -d:解壓縮 -#:1-9,壓縮比,默認為9
bzcat:不顯式解壓縮的前提下查看文本文件內容
xz/unxz/xzcat
xz[OPTION]... FILE ...
-k: keep, 保留原文件 -d:解壓縮 -#:1-9,壓縮比,默認為6
unxz file.xz 解壓縮
xzcat: 不顯式解壓縮的前提下查看文本文件內容
zip/unzip
打包壓縮
zip –r /backup/sysconfig /etc/sysconfig/
解包解壓縮
unzip sysconfig.zip cat /var/log/messages | zip messages - unzip -p message > message
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
總結: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