linux学习---打包与压缩

人生难得几回搏,此时不搏待何时。这篇文章主要讲述linux学习---打包与压缩相关的知识,希望能为你提供帮助。
文件压缩及tarlinux中有很多压缩及解压缩工具他们都各自提供针对于单个文件的压缩功能
压缩与解压缩 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 Jul8 02:50 1.doc -rw-r--r--. 1 root root 5496346 Jul8 02:50 1.doc.bz2 -rw-r--r--. 1 root root 5356880 Jul8 02:50 1.doc.gz -rw-r--r--. 1 root root 5301420 Jul8 02:50 1.doc.xz -rw-r--r--. 1 root root 5357063 Dec 11 07:46 1.doc.zip [root@localhost date]#

打包和解包以上的压缩工具只能针对单个文件,tar可以实现多个文件的打包及压缩
对应的文件为.tar后缀
【linux学习---打包与压缩】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/#解压缩解包

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

#分割大的 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


    推荐阅读