linux 压缩解压打包工具大集合

压缩、解压缩及归档工具有很多,今天小编就整理几个大家较为常用的。

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

  

  

 

原文地址:https://www.cnblogs.com/struggle-1216/p/12070369.html