压缩、解压缩及归档工具有很多,今天小编就整理几个大家较为常用的。
compress gzip bzip2 xz
zip tar cpio
一、压缩、解压工具
用法 压缩 工具 |
压缩后 压缩包格式 |
解压缩 (默认不保留源文件) |
保留原文件压缩 -c :将压缩结果打印到屏幕上 |
保留压缩文件解压 *zcat :将解压结果打印到屏幕上 |
强制压缩(默认不压缩硬链接) |
显示详细过程 |
压缩比 -#(数字越大,压缩比越高,速度越慢 文件越小) |
compress (压缩比最小,文件最大) |
.Z |
-d uncompress |
-c > X (>相当于创建文件,权限改变) |
zcat X.Z > X (>相当于创建文件,权限改变) |
-f |
-v |
无 |
gaip |
.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