文件压缩和解压

tar 打包和解包

可以对目录和多个文件打包成一个文件,保留文件属性不丢失,常用于备份功能,推荐使用;对应的文件是 .tar 后缀

 格式:
     tar [option] [打包文件名] [需要打包的文件路径]
 # 注意:tar 本身只支持归档备份文件,压缩功能由-z/-j/-J指定的压缩工具实现。
 ​
 常用参数:
     -z 通过gzip指令处理备份文件。  ***
     -v 显示执行过程。              ***
     -x 提取归档所有文件                     ****
     -c 建立新的备份文件             ***
     -C 解压到指定目录                      ***
     -f 指定备份文件                       ***
     -r 追加文件到归档
     -t或--list 列出备份文件的内容。        ***
     -d 对比备份文件内和文件系统上的文件的差异。
     -h 不建立符号连接,直接复制该连接所指向的原始文件。
     --checkpoint 读取备份文件时列出目录名称。
     --delete 从备份文件中删除指定的文件。
     --exclude=<范本样式> 排除符合范本样式的文件。
 ​
 范例:
 # 创建归档文件来自 foo 和 bar:
 tar -cf archive.tar foo bar
 # 提取归档的所有文件:
 tar -xf archive.tar
 # 列出所有归档文件内容:
 tar -tvf archive.tar
 # 创建归档并 gzip 压缩:
 tar -zcvf archive.tar.gz log
 # 提取归档文件并 gzip 解压:
 tar -zxvf log.tar.gz
 # 创建归档并 bzip2 压缩:
 tar -jcvf log.tar.bz log
 # 提取归档并解压到指定目录:
 tar -zxvf log.tar.gz -C /opt
 # 只打包目录内的文件,不所括目录本身
 cd /etc
 tar zcvf /root/etc.tar.gz ./
 ​
 # --exclude 排除文件
 tar zcvf /root/a.tgz --exclude=/app/host1 --exclude=/app/host2 /app
 tar zcvf mybackup.tgz -T /root/includefilelist -X /root/excludefilelist
     -T 选项指定输入文件
     -X 选项指定包含要排除的文件列表   格式:
     tar [option] [打包文件名] [需要打包的文件路径]
 # 注意:tar 本身只支持归档备份文件,压缩功能由-z/-j/-J指定的压缩工具实现。
 ​
 常用参数:
     -z 通过gzip指令处理备份文件。  ***
     -v 显示执行过程。              ***
     -x 提取归档所有文件                     ****
     -c 建立新的备份文件             ***
     -C 解压到指定目录                      ***
     -f 指定备份文件                       ***
     -r 追加文件到归档
     -t或--list 列出备份文件的内容。        ***
     -d 对比备份文件内和文件系统上的文件的差异。
     -h 不建立符号连接,直接复制该连接所指向的原始文件。
     --checkpoint 读取备份文件时列出目录名称。
     --delete 从备份文件中删除指定的文件。
     --exclude=<范本样式> 排除符合范本样式的文件。
 ​
 范例:
 # 创建归档文件来自 foo 和 bar:
 tar -cf archive.tar foo bar
 # 提取归档的所有文件:
 tar -xf archive.tar
 # 列出所有归档文件内容:
 tar -tvf archive.tar
 # 创建归档并 gzip 压缩:
 tar -zcvf archive.tar.gz log
 # 提取归档文件并 gzip 解压:
 tar -zxvf log.tar.gz
 # 创建归档并 bzip2 压缩:
 tar -jcvf log.tar.bz log
 # 提取归档并解压到指定目录:
 tar -zxvf log.tar.gz -C /opt
 # 只打包目录内的文件,不所括目录本身
 cd /etc
 tar zcvf /root/etc.tar.gz ./
 ​
 # --exclude 排除文件
 tar zcvf /root/a.tgz --exclude=/app/host1 --exclude=/app/host2 /app
 tar zcvf mybackup.tgz -T /root/includefilelist -X /root/excludefilelist
     -T 选项指定输入文件
     -X 选项指定包含要排除的文件列表

gzip和gunzip

来自于 gzip 包,对应的文件是 .gz 后缀

 格式
     gzip [OPTION] FILE
 # 注意:在 Linux 中,打包和压缩是分开处理的,gzip 命令只会压缩,不能打包,推荐使用tar -zcvf
 ​
 常用选项:
     -d 解压缩包,相当于gunzip
     -c 结果输出至标准输出,保留原文件不改变
     -r 递归压缩指定目录下以及子目录下的所有文件,不会压缩目录,只会递归压缩目录下的文件
     -# 指定压缩比,#取值为1-9,值越大压缩比越大
     -l, --list        list compressed file contents
 ​
 ​
 #解压缩
 gunzip file.gz
 #不显式解压缩的前提下查看文本文件内容
 zcat file.gz
 ​
 范例
 # 压缩文件 (源文件会消失)
 gzip messages
 # 压缩保留源文件
 gzip -c messages > messages.gz
 cat messages | gzip > m.gz
 # 解压缩包
 gzip -c -d messages.gz > messages   # 指定解压后的文件名称
 # 查看压缩包文件信息
 zcat messages.gz > messages 

zip 和 unzip

zip 可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性信息,如:所有者和组信 息,一般建议使用 tar 代替 分别来自于 zip 和 unzip 包 对应的文件是 .zip 后缀 范例: zip帮助

 范例:
 #打包并压缩
 zip -r /backup/sysconfig.zip /etc/sysconfig/
 #不包括目录本身,只打包目录内的文件和子目录
 cd /etc/sysconfig; zip -r /root/sysconfig.zip *
 #默认解压缩至当前目录
 unzip /backup/sysconfig.zip
 #解压缩至指定目录,如果指定目录不存在,会在其父目录(必须事先存在)下自动生成
 unzip /backup/sysconfig.zip -d /tmp/config
 cat /var/log/messages | zip messages -
 #-p 表示管道
 unzip -p message.zip > message
  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值