linux学习---打包与压缩

Posted 落阳٩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习---打包与压缩相关的知识,希望对你有一定的参考价值。

文件压缩及tar

linux中有很多压缩及解压缩工具他们都各自提供针对于单个文件的压缩功能

压缩与解压缩

compress和uncompress

工具来源于ncompress包文件为.z后缀

语法

compress Options [file ...]
uncompress file.Z #解压缩

选项

-d 解压缩,相当于uncompress
-c 结果输出至标准输出,不删除原文件
-v 显示详情

zcat 不解压缩查看文本文件内容

gzip和gunzip

来源于gzip包文件为.gz后缀

语法

gzip [OPTION]... FILE ..

选项

-k keep, 保留原文件,CentOS 8 新特性
-d 解压缩,相当于gunzip
-c 结果输出至标准输出,保留原文件不改变
-# 指定压缩比,#取值为1-9,值越大压缩比越大

bzip2和bunzip2

来源与bzip包文件后缀为.bz2

语法

bzip2 [OPTION]... FILE ...

选项

-k keep, 保留原文件
-d 解压缩
-c 结果输出至标准输出,保留原文件不改变
-# 1-9,压缩比,默认为9

xz 和 unxz

来源与xz包文件后缀为.xz

语法

xz [OPTION]... FILE ..

选项

-k keep, 保留原文件
-d 解压缩
-c 结果输出至标准输出,保留原文件不改变
-# 1-9,压缩比,默认为9

zip和unzip

来源与xz包文件后缀为.zip

zip可以实现大包目录和都多个文件成一个文件并且压缩

语法

zip [optinon][压缩文件][文件...]

选项

-u更新:仅更改或新文件
-m移动到zipfile(删除OS文件)
-r递归到目录
-1压缩更快   -9压缩更好
-q安静操作
-v详细操作/打印版本信息
-F修复zipfile(-FF更加努力)
-T测试zipfile完整性
-n不要压缩这些后缀
-e 加密

zip -q -r html.zip /home/html

各个压缩工具对比

[root@localhost date]# ll
total 27060
-rw-r--r--. 1 root root 6190080 Jul  8 02:50 1.doc
-rw-r--r--. 1 root root 5496346 Jul  8 02:50 1.doc.bz2
-rw-r--r--. 1 root root 5356880 Jul  8 02:50 1.doc.gz
-rw-r--r--. 1 root root 5301420 Jul  8 02:50 1.doc.xz
-rw-r--r--. 1 root root 5357063 Dec 11 07:46 1.doc.zip
[root@localhost date]# 

打包和解包

以上的压缩工具只能针对单个文件,tar可以实现多个文件的打包及压缩

对应的文件为.tar后缀

tar

语法

tar[必要参数][选择参数][文件] 

选项

-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性
-f 指定压缩文件
-p或--same-permissions 用原来的文件权限还原文件
-C<目的目录>或--directory=<目的目录> 切换到指定的目录。
--exclude 排除文件

#创建归档,保留权限
tar -cpvf /PATH/FILE.tar FILE...
#追加文件只归档,不支持对压缩文件追加
tar -rf /PATH/FILE.tar FILE...
#查看归档文件中的文件列表
tar -t -f /PATH/FILE.tar
#展开归档
tar xf /PATH/FILE.tar
tar xf /PATH/FILE.tar -C /PATH/
#常用组合
[root@centos8 ~]#tar zcvf etc.tar.gz /etc/  #压缩并打包
[root@centos8 ~]#tar xcvf etc.tar.gz /etc/  #解压缩解包

split

split 命令可以分割一个文件为多个文件

#分割大的 tar 文件为多份小文件
split -b Size –d tar-file-name prefix-name
示例:
split -b 1M mybackup.tgz mybackup-parts
#切换成的多个小分文件使用数字后缀
split -b 1M –d mybackup.tgz mybackup-parts
#将多个小文件合并成一个大文件
cat mybackup-parts* > mybackup.tar.gz

以上是关于linux学习---打包与压缩的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习笔记—文件与文件系统的压缩与打包(转载)

Linux学习笔记文件与文件系统的压缩与打包

linux:文件打包与压缩

Linux学习笔记(二十)文件压缩 zip压缩tar打包打包解包

Linux学习总结(十四) 文件的打包和压缩

Linux学习-打包压缩命令