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