你好,我是goldsunC 让咱们一块进步吧!
倘若你觉得文案排版不太好看,可关注我的公众号,文案同步发出,只不外知乎不支持Markdown。
前言
咱们晓得,在面向对象的程序设计中,一切皆对象。而在Linux操作系统中,一切皆文件,因此呢咱们总会跟文件打交道。
Linux文件系统很庞大繁杂,不外有非常多时候,在咱们必须将文件分享给其他人的时候,经常会用到文件压缩,由于倘若文件太大的话在分享给其他人时就必须传输更加多的数据。下载一个几十M的压缩包和下载几百M的源文件,估计大众都会选取前者吧。或有时候咱们必须对文件进行备份,源文件数据量太大会占用更加多磁盘空间,亦必须压缩。例如以上的状况,咱们经常会用到文件压缩和解压这一操作。
用惯了Windows的咱们可能觉得这是一个很简单的事情,有非常多软件能容易实现文件压缩和解压,例如鄙人最爱好的Bandzip,非常轻量级的一个小压缩软件,运用它只必须简单的点几下就能容易实现文件压缩和解压的操作,简直不要太方便。然则用Linux的话,倘若咱们用shell来操作,可就没法简单点几下就完成任务了。咱们必须把握有些简单的压缩知识以及命令操作。
什么是文件压缩
日前咱们运用的计算机系统中都是运用所说的字节单位(byte)来计量。而事实上,bit才是计算机最小的计量单位,而1Byte=8bit,倘若咱们只必须记忆一个数字1,那系统会怎样记录?是的,它会这么记录:
00000001
由于一个字节等于八个比特,每一个比特值为0或1,倘若记录一个数字1,它会在最右边占据1个位,而其它的7个位则会被自动地填上0。其实那7个位应该是空的才对。不外,计算机为了要满足咱们的操作系统数据的读写,因此就会将该数据转为字节的形式来记录。
而有些聪明的计算机工程师便是利用有些繁杂的计算方式,将这些没有用到的空间丢出来,以让文件占用的空间变小,这便是压缩的技术。
还有一种压缩技术,它是将重复的数据进行统计记录。例如,倘若某个数据为[111111······]共有100个1时,那样压缩技术会记录为[100个1]而不是真的有100个1的位存在。这般亦能给精简文件记录的容量。
压缩技术简单来讲,便是将文件中的有些无用到的空间填满,让空间利用率更高罢了。然则既然你压缩了文件,那样咱们的操作系统当然没法之间读取她们,因此呢,倘若想要运用这些被压缩过的文件,就必要将它还原为未压缩前的状态,这亦便是解压缩。
压缩文件最大的好处便是让文件的容量变小,以至于你能够在相同的空间存放更加多的文件,或在网络传输时传输的更快。
Linux平常压缩指令
在Linux环境中,压缩文件的扩展名大大都是:.tar、.tar.gz、.tgz、.gz、.Z、.bz2、.xz。
倘若你有有些Linux基本,咱们晓得在Linux中文件的扩展名并无什么实质的功效,那为何会有这般的扩展名呢?
这是由于Linux支持的压缩命令非常多,且区别的命令所运用的压缩技术并不相同,因此呢彼此之间就可能没法互通压缩/解压缩文件。因此运用扩展名以让你晓得该文件是运用了哪种压缩命令压缩的,好用来对照着解压缩。虽然Linux文件的属性和文件名无绝对关系,然则清晰的文件名能够用来帮咱们人类这小脑袋来辨别。
*.Z compress程序压缩的文件;
*.zip zip程序压缩的文件;
*.gz gzip程序压缩的文件;
*.bz2 bzip2程序压缩的文件;
*.xz xz程序压缩的文件;
*.tar tar程序打包的文件,无被压缩;
*.tar.gz tar程序打包的文件,经过gzip的压缩;
*.tar.bz2 tar程序打包的文件,经过bzip2的压缩;
*.tar.xz tar程序打包的文件,经过xz的压缩;
Linux上平常的压缩命令是gzip、bzip2和xz,而compress实质上已然被gzip替换了。其中zip命
|