随堂练习 压缩和解压缩
cmpress
格式
compress options [file...]
解压缩
uncompress file.Z
常用选项
-d 解压缩,相当于 nucompress
-c 结果输出至标准输出,不删除原文件
-v 显示详情
gzip
格式
gzip [option] ... FILE...
常见选项
-k keep,保留原文件,CentOS8 新特性
-d 解压缩,相当于 gunzip
-c 指定压缩比, # 取值为 1 - 9,值越大压缩比越大
范例
1)解压缩
gunzip file.gz
2)不显示解压缩的前提下查看文本文件内容
zcat file.gz
gzip -c messages >messages.gz
gzip -c -d messages.gz > messages
zcat messages.gz > messages
cat messages | gzip > m.gz
bzip
格式
bzip2 [option]... FILE...
常用选项
-k keep,保留原文件
-d 解压缩
-c 结果输出至标准输出,保留原文件不改变
-# 1 - 9 压缩比,默认为9
范例
1)解压缩
bunzip2 file.bz2
2)不显示解压缩的前提下查看文本文件内容
bzcat file.bz2
xz
格式
xz [option]... FILE ...
常见选项
-k keep,保留原文件
-d 解压缩
-c 结果输出至标准输出,保留原文件不改变
-# 压缩比,取值 1 - 9,默认是 6
范例
1)解压缩
unxz file.xz
2)不显示压缩的前提下查看文本文件内容
xzcat file.xz
zip
可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性信息
范例
1)打包并压缩
zip -r /backup/sysconfig.zip /etc/sysconfig
2)不包括目录本身,只打包目录内的文件和子目录
cd /etc/sysconfig ; zip -r /root/sysconfig.zip *
3)默认解压缩至当前目录
unzip /backup/sysconfig.zip
4)解压缩至指定目录,如果指定目录不存在,会在其父目录(必须事先存在)下自动生成
unzip /backup/sysconfig.zip -d /tmp/config
cat /var/log/messages | zip messages -
5)-p 表示管道
unzip -p messages.zip > messages
打包和解包
tar
可以实现打包目录和多个文件打包成一个文件并压缩,保留文件属性不丢失,常用于备份功能
格式
tar [option] ...
1)创建归档,保留权限
tar -cpvf /PATH/FILE.tar FILE...
2)追加文件至归档:猪:不支持对压缩文件追加
tar -rf /PATH/FILE.tar FILE...
3)查看归档文件中的文件列表
tar -t -f /PATH?FILE.tar
4)展开归档
tar xf /PATH/FILE.tar
tar xf /PATH/FILE.tar -C /PATH/
5)结合压缩工具:归档并压缩
-z 相当于 gzip 压缩工具
-j 相当于 bzip2 压缩工具
-J 相当于 xz 压缩工具
范例
tar zcvf etc.tar.gz /etc/
tar jcvf etc.tar.bz2 /etc/
tar Jcvf etc.tar.xz /etc/
1)只打包目录内的文件,不包括目录本身
cd /etc ; tar zcvf /root/etc.tar.gz *
2)利用 tar 进行文件复制
tar c /data/ | tar x -C /backup
--exclude 排除文件
范例
tar zcvf /root/a.tgz --exclude=/apps/host1 --exclude=/apps/host2 /apps
-T 选项指定输入文件
-X 选项指定包含要排除的文件列表
范例
tar zcvf mybackup.tgz -T /root/includefilelist -x /root/excludefilelist
split
可以分割一个文件为多个文件
范例
1)分割大的 tar 文件为多份小文件
split -b Size -d tar-file-name prefix-name
split -b 1m mybackup.tgz mybackup-parts
2)切换成的多个小文件使用数字后缀
split -b 1m -d mybackup.tgz mybackup-parts
将多个切割的小文件合并成一个大文件
cat mybackup-parts* > mybackup.tar.gz
cpio
通过重定向的方式将文件进行打包备份,还原恢复的工具,他可以解压以 “.cpio” 或者 “.tar” 结尾的文件
格式
cpio [选项] > 文件名或者设备名
cpio [选项] < 文件名或者设备名
常见选项
-o output 模式,打包,将标准输入传入的文件名打包后发送到标准输出
-i input 模式,解压,对标准输入传入的打包文件名解包到当前目录
-t 预览,查看标准输入传入的打包文件中包含的文件列表
-o filename 输出到指定的归档文件名
-A 向已存在的归档文件中追加文件
-I filename 对指定的归档文件名解压
-F filename 使用指定的文件名替代标准输入或输出
-d 解包生成目录,在 cpio 还原时,自动的建立目录
-v 显示打包过程中的文件名称
范例
1)将 etc 目录备份
find ./etc -print | cpio -ov > bak.cpio
2)将 /data 内容追加 bak.cpio
find /data | cpio -oA -F bak.cpio
3)内容预览
cpio -tv < etc.cpio
4)解包文件
cpio -idv < etc.cpio