Linux文件管理:快速打包与压缩文件技巧
admin2023-11-15【电脑知识】浏览:134
打包与压缩的概念介绍
归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。通常,归档总是会和系统(数据)备份联系在一起。
压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。比如说,在压缩文件中,有不止一处出现了 "Andrew Notes",那么,在压缩文件时,这个词就会用一个代码表示并写入词典文件,这样就可以实现缩小文件体积的目的。
由于计算机处理的信息是以二进制的形式表示的,因此,压缩软件就是把二进制信息中相同的字符串以特殊字符标记,只要通过合理的数学计算,文件的体积就能够被大大压缩。把一个或者多个文件用压缩软件进行压缩,形成一个文件压缩包,既可以节省存储空间,有方便在网络上传送。
如果你能够理解文件压缩的基本原理,那么很容易就能想到,对文件进行压缩,很可能损坏文件中的内容,因此,压缩又可以分为有损压缩和无损压缩。无损压缩很好理解,指的是压缩数据必须准确无误;有损压缩指的是即便丢失个别的数据,对文件也不会造成太大的影响。有损压缩广泛应用于动画、声音和图像文件中,典型代表就是影碟文件格式 mpeg、音乐文件格式 mp3 以及图像文件格式 jpg。
采用压缩工具对文件进行压缩,生成的文件称为压缩包,该文件的体积通常只有原文件的一半甚至更小。需要注意的是,压缩包中的数据无法直接使用,使用前需要利用压缩工具将文件数据还原,此过程又称解压缩。
Linux 下,常用归档命令有 2 个,分别是 tar 和 dd(相对而言,tar 的使用更为广泛);常用的压缩命令有很多,比如 gzip、zip、bzip2 等。这些命令的详细用法,后续文件会做一一介绍。
注意,tar 命令也可以作为压缩命令,也很常用。
压缩的好处
节省磁盘空间占用率节省网络传输带宽消耗网络传输更快
常见的Linux压缩包
格式 | 压缩工具 |
.zip | zip压缩工具 |
.gz | gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用) |
.tar | 归档 |
.bz2 | bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)(不常用) |
.tar.gz | 先使用tar命令归档打包,然后使用gzip压缩 |
.tar.bz2 | 先使用tar命令归档打包,然后使用bzip压缩 |
gzip压缩工具
#安装gzip压缩工具:yum install -y gzipgzip [选项] 文件名-r + 目录 指定一个目录 将目录下的所有文件都压缩成gz包 并不打包目录-d 解压文件# 例:[root@localhost mail]# touch file1[root@localhost mail]# gzip file1[root@localhost mail]# lltotal 4-rw-r--r--. 1 root root 26 Aug 26 11:31 file1.gz 压缩完变成.gz的包出来了-rw-rw----. 1 xxx mail 0 Aug 24 17:07 xxx-rw-rw----. 1 zls mail 0 Aug 18 11:34 zls特性:1、gzip打包完之后,源文件被删了 相应解压后,压缩包没了,源文件出来2、gzip打包 每一个文件都是独立的压缩包# 3、gzip只能压缩文件 不能压缩目录4、zcat可以查看包内容[root@localhost dir1] # touch xxx{1..10}[root@localhost dir1]# lltotal 0-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx1-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx10-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx2-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx3-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx4-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx5-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx6-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx7-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx8-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx9[root@localhost dir1]# gzip /root/dir1 没加-r不行gzip: /root/dir1 is a directory -- ignored[root@localhost dir1]# gzip -r /root/dir1[root@localhost dir1]# lltotal 40-rw-r--r--. 1 root root 26 Aug 26 11:49 xxx10.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx1.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx2.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx3.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx4.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx5.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx6.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx7.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx8.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx9.gz[root@localhost dir1]# gzip -d /root/dir1/xxx1 解压文件xxx1[root@localhost dir1]# lltotal 36-rw-r--r--. 1 root root 0 Aug 26 11:49 xxx1-rw-r--r--. 1 root root 26 Aug 26 11:49 xxx10.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx2.gz-rw-r--r--. 1 root root 25 Aug 26 11:49 xxx3.gz-rw。。。。。。。。
zip压缩工具,unzip解压缩工具 (类似windows的zip解压软件)
#安装:[root@localhost dir1]# yum install -y zip unzip#语法:zip [选项] 压缩包包名(给人看的) 文件1 文件2... (自己起的名xxx.zip)#选项-r 递归处理,将目录下的所有文件压缩成一个包 (要到这个目录的上一级压缩)不加r 去打包一个目录的话 则会打包一个空目录所以如果目录李有文件 一定要+r比如:[root@localhost ~]# zip dir1.zip dir1 不加radding: dir1/ (stored 0%)[root@localhost ~]# zipinfo -1 dir1.zip 查看内容dir1/[root@localhost ~]# zip -r dir1.zip1 dir1 加radding: dir1/ (stored 0%)adding: dir1/xxx2.gz (deflated 20%)......[root@localhost ~]# zipinfo -1 dir1.zip1dir1/dir1/xxx2.gzdir1/xxx3.gz......#特性1.zip压缩后,源文件还在unzip解压完包后,包不会消失,文件也会出来2.zip可以压缩多个文件进一个包里3.zip可以打包目录 前提是+r 不然会打包一个空目录#怎么解压:unzip + 包名1.unzip -d 指定的路径 包名可以指定解压到指定的目录
tar Linux最常用工具,支持文件和目录的压缩归档
# 语法tar [选项] 要放到的位置/包名 要压缩的文件例如:mkdir /client_backup[root@web01 /client_backup]# cd /etc && tar zcf /client_backup/xxx.tar.gz passwd[root@web01 /etc]# cd /client_backup/[root@web01 /client_backup]# lltotal 4-rw-r--r-- 1 root root 579 Oct 18 18:10 xxx.tar.gz# 选项-c 给文件做归档-f 接包名-z 以gzip格式压缩归档文件(.tar.gz)-v 显示过程-x:解压、解打包归档文件-C:指定到解压的目录-t:在不解压的情况下,列出文件-j:以bzip2格式压缩归档文件(.tar.bz2)-J:以xz的格式压缩归档文件-X:排除不想要的文件 (写一个文件,将需要排除的文件 名放在文件中)-h:打包软连接文件cf 单纯打包xf 解打包# 常用打包与压缩组合czf //打包tar.gz格式(最常用)cjf //打包tar.bz格式cJf //打包tar.xz格式xzf //解压tar.gz格式xjf //tar.bz格式xf 自动选择解压模式tf 查看压缩包内容#拓展--hard-derference 打包硬链接--exclude 在打包的时候写入排除文件/目录#注意的点1 其他的选项可以不分先后,但是f永远放在选项的最后,接包名2 万能的解包或解压 tar -xf3 无论打包还是解压包,源文件不会消失,包不会消失4 不能以绝对路径打包,避免在解压的时候会覆盖原目录文件
例子
打包/data目录[root@nfs /]# tar zcf data_backup.tar.gz data[root@nfs /]# lltotal 20lrwxrwxrwx. 1 root root 7 Sep 9 18:09 bin -> usr/bindr-xr-xr-x. 5 root root 4096 Sep 9 18:15 bootdrwxr-xr-x 2 www www 6 Nov 3 17:26 data-rw-r--r-- 1 root root 108 Nov 3 20:54 data_backup.tar.gz
#打包/tmp下所有文件[root@zls ~]# cd /[root@zls /]# find tmp/ -type f | xargs tar czf tmp.tar.gz #打包/tmp下所有文件[root@zls /]# tar czf tmp.tar.gz | xargs find tmp/ -type f#打包/tmp下所有文件[root@zls /]# tar czf tmp.tar.gz $(find tmp/ -type f)#排除#排除单个文件[root@zls /]# tar czf etc.tar.gz --exclude=etc/services etc/#排除多个文件[root@zls /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/[root@zls /]# tar czf etc.tar.gz --exclude=etc/{services,passwd,shadow,gshadow,group}#将需要排除的文件写入文件中,指定需要排除的文件列表, 最后进行打包压缩[root@zls /]# tar czfX etc.tar.gz paichu.list etc/
相关文章
- ppt文字溢出文本框怎么办 ppt文本框标点溢出
- cad是什么详细 CAd是啥
- 震旦打印机质量怎么样 震旦品牌的打印机怎么样
- 重装win10镜像系统步骤 系统镜像重装win10系统
- WiFi满格却慢如蜗牛:网速杀手探秘
- phicomm路由器重新设置方法-斐讯路由器后面的按钮是什么. 斐讯路由器复位键在哪
- Go语言实现谷歌浏览器截屏效果:突破传统截屏技术的创新
- PPT怎么制作一款文字拆分效果的中国风封面 ppt封面制作的三大方法
- 通过QQ发送文档的五种方式概述
- win10epic正当防卫4不能存档解决方法 正当防卫4无法启动少了文件
- ultraedit文件备份取消教程 ultraedit怎么保存
热评文章
企业微信分屏老师能看到吗 企业微信切屏老师能看见吗
excel如何批量输入求和公式 excel批量输入求
罗技驱动win7能用吗 罗技鼠标支持win7系统吗
打印机驱动卸载干净教程 打印机驱动怎样卸载干净
显卡驱动更新小技巧,让你的电脑运行更稳定
手机系统声音不起眼,但很重要 手机系统声音有的,但