00:00
咱们上午呢,讲了文件的查找和压缩。那其中呢,我们压缩里面呢,大部分的工具呢,都是不支持文件夹的压缩的啊,像咱们用的很多熟悉的文件压缩命令啊,GZ包括GZ2包括还有XZ。那这些都是只是针对文件来印压缩。仅仅一个一个VIP,它是可以支持能力加热压缩。但是VIP的这种压缩,它的效果应该说并不是特别好,压缩比一般般。在Windows里面我们也经常进行压缩,估计大家是不太常用VIP这种文件的压缩方式。
01:05
你们在Windows里要压缩喜欢用什么样的文件后缀的压缩方式,那比方说这个比较常用的rar。还有7V是吧,那这些压缩比还是不错的,它比VIP压缩比较高。那么在Linux里面啊,我们看到zip这种压缩组啊,比不上EZ2包括XZ。那么现在我们就有必要实现一个功能,就是既能对文件夹这个打包,还能够压缩比还不错,至少比VIP要强。那如何来实现这个功能呢?啊,我们并没有现成的。
02:01
直接的工具可以做到。但是我们可以通过曲线救国的方式实现。那怎么曲线救国呢?就是我们先用一个命令,先把包。我们把一个文件就先打完包成了一个文件啊,然后我们再配合。大家比较熟悉的压缩命令来进行压缩不就行了吗?啊,比方说我先用命令把它打成一个包文件,以后用SZ压缩,这不就可以了,但这个需要两步,还是繁琐,那在这中。历史悠久的有一个打包命令啊,叫踏命令,这个命令。它是非常常用的。用来。早期是用来实现磁带的备份的。这个碳,它的名称叫T。
03:01
啊,这个to呢,它的功能就是对磁带。把数据归档到磁带里。啊,这些概念呢,都是比较专业的。来自于unix小型机的概念。早期的数据备份都是拿磁带来备份。现在不太用了。啊,Unix小型机上有很多传统的公司啊,电信啊,银行啊,他们备份都是拿这个磁带。磁带长的样子呢,跟我们家里以前老的那个录音机那个磁带长得有点像。但是它是存数据的,不是存音乐的是吧?那它的容量比较大,价格比硬盘便宜很多。但是现在来看呢,这个磁带已经没什么了。常用的场景的。
04:00
啊,因为现在的硬盘已经很便宜。所以我们目前来讲呢,很多情况下都会把数据直接备份到硬盘上。但是这个命令仍然我们还会用它的功能就是进行打包。它可以把目录,当然也可以把多个文件。打成一个文件。它本身只是备份啊,只是打包。并不进行压缩,但是我们也可以借助刚才我们上午讲的这些压缩命令。配合起来进行压缩,换句话说它命令,它可以间接的去调用我们上午讲的这些压缩命令,比方说调用XZ去用命令看自动的进行打包并压缩。那换句话说,它压缩的时候,它实际是依赖于我们上午讲的这个命令的。也就意味着上午我们用到的这些工具对应的包,如果没有安装差也打不了它,也压缩不了。
05:05
所以这个压缩并不是它自身的能力,它只是间接的调用了压缩命令。从明命令执行效果来讲,感觉就是它好像不仅打包了,压缩了,实际上它本身只打包压缩,还是依赖于压缩命令的。由于他呢进行打包。甚至我们配合压缩命令可以进到压缩的效果,所以这个碳呢用的非常多。它还可以保留文件的属性,不丢失。也是经常用来做备份的一种手段。差并联的用法非常丰富。大家看这里面一大堆的选项。咱们是吧啊,所以我们从入门到放弃的感觉没关系啊,挑一些重点介绍一下。比方说我们最常用的就是。
06:03
打包,打包的方法呢,就是把若干个文件或者文件夹。打包成一个文件,这个文件的后缀就是TR后缀,所以它的这个文件后缀呢,对应的是TR。啊,我们上午呢,曾经给大家说过一些工具。文件是什么后缀?这个是TR后缀。啊,对于他来讲呢,用的最多的就是打包,所以我们怎么打包呢,比方说我们在这。啊,我们把这些数据啊。打个包,那我打包的话呢,我们一般来讲呢,可以考虑这个这样的,看CVF这个前面的横线加也行,不加也行。
07:03
因为历史悠久,不加横线的这种选项风格。什么风格?那么在选项有一个横线的风格,有两个横线的风格,还有啥不对的风格?三种选项的风格吗?嗯,我听到了,有同学答出来了啊,大部分同学可能都忘了。不带任何横线的风格叫BSD风格。是吧,一个横线的是什么风格,U内库风格啊,那两个横线的是金庸风格对吧,那么他的历史悠久。它不带横线BSD横轴。比方说,我们把ETC这个目录打成一个包。C呢,表示创建打包文件。
08:03
V是观察过程。F表示你要指定文件的名称。那这条命令将把ETC整个目录打包成一个文件。由于我们加了。所谓的。V选项,所以它能够看到过程。打包之后,因为我们这指定的路径是相对路径,所以呢,它就放在了这儿。那其中呢,我们看到他打包完以后,这个他文件它进行压缩了吗。大家看21兆。显易见,跟原来的这些比,是不是就根本没有压缩?所以它本身不打不压缩啊,那么打包之后呢,由于我们这儿写的是这个ETC。
09:00
所以他把这个路径,包括ETC整个文件夹都记下来了。那我们要知道里面到底包括哪些文件,我们也可以预览,预览的话呢是T。T可以看到里面的文件列表,大家发现没有,你看它是不是又是。不带横线就是不带根。那是不是意味着你要将来解包,是不是就解到了某个目录下的ETC下?是吧,哎,当然这个是安全的。那我们用这种方式。他把这个ETC这个目录也给打包了。但事实上,有的时候我们是不想。对ETC这个目录来进行打包,我只是想把这里面的文件目录打包,ETC本身不想要。那如果我们这样做,解开以后,比方说我们想把它解到OT下,那我们解的时候用XF。
10:03
X是解包。那原始的文件在这ETC点卡。默认就是解在你当前目录下,我当前在OPP下,它就解到OPP下啊解完以后大家看这里面就有ETC,也就是说我们打包的时候带ETC,解完了还带ETC。啊,所以我们有的时候只是想把里面的数据进行打包,而并不仅并不希望把文件夹本身打包。那如果是这样的话呢,我们在进行打包的时候怎么打。那有人说,那你这样写行不行行。如果这样写,可不可以实现这功能呢?好,大家看,好像仍然带有ETC啊,那我们看一下ETC2还在ETC,所以如果我们不想把一个文件夹本身打包,只是想打包里面的内容。
11:11
那刚才这种方法也不行,那怎么办呢?那就进到目录里,然后用这种方式打包CVF放到。ETC差三点,所以这时候点当前目录。当前目录不就在ETC下吗?对吧,那我们把当前目录下的所有文件进行打包,当然我光写当前目录点行不行。是不是也可以?大家看这是不是就是包含了当前目录下的所有文件,然后我们再去预览一下PVF,对它下的ETC3点哈,大家看是不是就没有那个ETC目录了。
12:01
那现在我就可以把它解开了,解开的话呢,刚才我们是进到那度解,实际上可以不用记,那么我们可以用X加上一个大C选项,这样的话呢,就可以把数据。解包到你指定的杠单C后的文件夹里。好,然后我们进到这个EOBT下,看见了吗?是不是这里面就没有那个ETC文件夹了。啊,这些细节希望大家记住啊,以后你传文件夹传错了,将来路径差了个文件夹,那就不能访问了啊,这都是容易出岔子的地方,希望大家记住了。好,这就是打包,当然我们刚才发现好像光打个包不压缩呀,那事实上呢,咱们也可以配合一个参数。自动的调用打包压缩文件来实现,那怎么做呢?啊,比方说我们还是在这个地方,T cvf ETC t.GZ。
13:05
第。这什么意思呢?我打包并且压缩成G离后缀,那么这要加一个。选项。这个Z代表着就是压缩成GZ后缀,当然你要记住Z是要调用GZ的。也就是说,你要确保你的记上的有GZ,如果没有GZ,它会报错的,你要确保这个命令是存在的,听懂吧,这个命令是存在的,它要掉它,所以你看走。完了。那现在我们去看一下目前生成的这个啊,我是放在当前的目录下了,不应该放在这,放在这,我把它删了啊,我放在地塔下,放在地下。
14:00
好,然后再来看一下贝塔。那在这我们看到ETCGZ。压缩之后看效果如何。是不是比VIP要强是吧,当然比他就更强了,因为它人家压缩了。那这里面呢,我们刚才也说了,它会调用机。所以万一这个G。不存在啊,当然这个文件,比方说我故意的把它移走,移到一个别的目录系,这不就这个工具不是没了吗,没了以后啊,你再去进行打包压缩。看报错了,看到了吗?它是不是自动去找G这个命令了,结果你是不是没有这个GZ和命令。所以他命令本身不压缩,记住了吗?他自己做不了压缩,它得掉压缩命令啊,所以希望大家明白啊。
15:08
啊,那当然,我还得把它移回来,Us rb啊,EZ把它移回来。啊,移回来呢,他在了,那就可以用了,这就没问题了是吧,所以大家用的时候呢,啊要记住。当然这种后缀的我们说了GZ压迫压缩后缀不,不咋地,还有更好的上我们讲过AZ2是不是比它强啊?AZZ2用什么呢?G?嗯,用这好好看看压缩怎么样。那看看它的压缩比,比一比B点23.6咋样啊,再次优秀了。是不是又优秀了吧,当然我们还有更优秀的啥呀,XZ啊XZ呢是大勾大勾这个对应上啊,你别给记错了啊,大G啊,这奔驰大G是吧。
16:21
但是好像感觉有点不好,明显慢了好几个数量级似的感觉啊,当然呢,看看效果咋地吧。嗯,再次提高了,不过这个付出代价感觉有点高吧。是吧,所以呢,这就看你了,你要追求高压缩比,看来XC是不错的。但是你要追求性能。好像这个差点意思。不过我感觉BC2的比较好是吧,呃,速度又可以,压缩比也可以,它比较匀,均匀是不是没有特别介于两者之间哎。
17:07
啊,这就是咱们刚才提到的啊,当然我再次强调这是依赖于压缩命令的啊,啊,你像你这个地方,比方说来个三结果XC命令没了,XC命令呢,啊把这个工具给它卸了XZ。这有依赖性,那我们就用DF啊,对move卸了它。那这个命令一旦卸走了,你再压缩是不是又不行了?就它依赖于啊,你这个工具你不能少啊,啊你这个工具你得有啊有啊,所以他命令呢,它自身是无法实现压缩的,哎呀这就可以了啊,所这就是我们给大家讲的打包压缩,实际上你记住这几个够了,其他的的话呢,相对用的不是特别多啊,记住这个就够了,所以打包。
18:07
预览压缩,呃,压缩完了就这几个,然后配合这几个压缩。工具来实现。谢谢。啊。那另外呢,我们再进行。打包压缩的时候。也可以进行。一些额外的控制,比方说排除,你像这个呢,有一个X cloud cloud呢就是排除。就是我可以把。某个文件夹进行打包,但是某些文件夹排除了不打包了,你要说我对APP打包,但是HOST2 host1这两个不打包了,把它排除了,理解了吗?
19:03
啊,另外呢,我们用这个命令可以实现文件的复制。这个命令。大家看啊,它是啥意思,就是把它data这个文件夹进行打包,但是他没说存哪,没说存哪,就在标准输出输出。然后管道传,传给他这边有解压缩,那解压缩完了以后放哪去啊,放到单发,所以实际上利用这种方式就实现了文件复制。啊,那这个呢,我们可以看一眼。当然现在我们这里面没有没有这个up OT吧。那我们把ETC。好,这样来做。走好,看看这个OC里面有没有东西。大家看过来了吧,啊,当然刚才是不是有OPT里面的东西TC删了,然后再来一次确保一下OT,你看有ETC要吧。
20:11
但是有人说你这个好折腾啊,我们学过CP命令,多省事啊。啊,据说这个命令对于大文件。特别大的文件效率。拷贝速度比CP要快。啊,当然这个东西可以测一下啊,测一下。啊,比方说我们现在呢,来把这个OT。里面的文件,当然这个文件太小啊,这个可能感觉不出来啊,感觉不出来那我们也测一下吧,怎么测呢,有一个命令叫。Time命令,这个time命令呢,可以来测试测试这个中间的这个命令,看看它是不是执行多长时间。大家看到是0.0。五九秒啊。
21:01
那这是目前的。执行速度。啊,ETC把它清理下。那我们也可以用CP,然后说比较保留属性,ETCOPT,然后呢,我们也加个time。差不多是吧,还还快了一点。但是这个是大文件啊,就是小文件的话,估计也比不出什么效果来。将来你找一些比较大的文件,你试一试啊,这个他命令据说是速度还是稍微快一点,当然这个东西比测试要找个大文件。总之这种方法是可以实现文件复制的,那接下来呢,我们来看split命令。Split命令呢?它是把一个大文件切割成多个小文件。啊,你像我们烫呢,打包都比较大一分,打包完了以后如果太大。
22:05
将来拷贝的时候一个大文件传万一。哪怕一个字节传错了得大家就传完了。所以我们用SP呢,这个命令可以把大文件切成多个小文件。那复制的时候万一有一个文件错了,大不了这个文件重传一下就行。尤其互联网上有些网站呢,它对你上传的文件大小是有限制的。手机上就有限制。手机上你们发现没有,手机比方说用微信传文件,它有些文件不让传,说太大了是吧,他对文件大小有限制,那对这个呢,我们就可以用这个SP来切,切小了,切小了再放,那怎么切呢?它的SP呢,杠B指定它的大小。然后我们切割的时候,可以指定对哪个文件来进行切割。
23:00
然后切割完了以后呢,每个文件。采用什么样的文件前缀来进行切割?并且切完了以后,那么我们会自动的对这个文件呢,进行这个文件的这个后缀的区分,如果不加文件后缀,大家前缀都一样,后缀也一样,那不就成一个文件了吗?啊,所以我们这边要想。区分出来,那怎么办呢?我们就可以加这个选项。加上一个D。或者不加默认,它就是abcd字母来排,那加上D呢,它就会以数字来区分不同的小文件啊,比方说咱们可以用speed-B来试一试啊,杠B来试一试。啊,那我们刚才好像有一些大文件,比方说就这个文件吧,这个二二十多兆的这个文件,20多兆这个文件呢,我把它切小了啊,那split,然后杠B直径大小,比方说一兆一个啊ETC2它啊切到哪去呢?比方说我们切到OT下巴。
24:14
啊,那我们要看看OT下有没有东西啊,那我把这个目录给它清空啊,清了啊,然后呢,我们就切下来的文件放到OPT下。那前缀叫什么呢?叫ETC,大家都叫ETC。但是。后面肯定不应该一样了,再一样大家都一样,所以我们就给它叫什么呢啊,它点后面跟ABC,让它自动去串就行了。啊,所以我们怎么去把它切出来,这命令就可以了,然后接着我们来试一试,看看能不能做到走,然后看一看这边是不是成功了。看到没有,每个文件不大不小,一兆只有最后一个凑不齐了,那该多大多大?
25:06
看到了吗?这就切成小文件了。啊,当然切成小半件,那你咋合并啊?那合并的话呢,很简单,T行重并项ETC点完了。它和原来的etc2.t你看一模一样不一样吗?啊,当然就说那你这个能用吗?那是什么TVF预览一下能不能预览没问题吧,没问题。理解了吧,当然我们这么分是一种方法,还有一种呢,因为我们现在呢,它分出来的文件都是abcd这么来加后缀的啊,那么我们实际上也可以加什么呢?加数字为后缀。
26:03
数字为后缀呢,就是加一个B就好了,就这个地方我们指定以数字的方式。来加啊,加了以后你再看一下。01020304看懂了吗。啊,这就是两种不同的方式啊,啊,这就是文件的打包并切割。那实际上对于我们来讲,重点掌握它。尤其我刚才讲的这个三种,尤其打包压缩这两个,打包和这个解包这两个你必须会啊。那在上午呢,我们曾经给大家说过,你像互联网上你看这些文件,大家看到了吗?都是踏点XZ发现了吧,t.XZ,你看这边是不是全是t.XZBZ2看到没。全都是打包并压缩的。全都是啊,无一例外,基本上你看没有差点记Z。所以这个踏命令是必须掌握的。
27:02
差点机。啊,当然那最后呢,我们还有一个文件的格式呢,大概说一下这个了解一下叫CP。Cpio也是历史上悠久的打包解包工具。不过。目前不太用了哈,那他的这个,呃,对于特定的场合下可能会用到,尤其我们在系统中有些文件还真的就是这种格式。那它的这个使用呢,用法,我这儿举了几个例子啊,大家看。他这儿可以把。有output模式,UT模式,Output模式呢是。Output要翻译的话是不是输出啊?那输出什么意思呢?输出就是把内存中的数据打包到文件里去。将标准输入传入的资源打包到标准输出啊,那当然你要重定向写到文件里。
28:04
然后这儿还有ii是输入模式,输入模式呢,就是把磁盘的文件给它解包解开,所以我这儿呢有一些范例啊,大家看这oo呢,就是输出。把标准输入的内容给他再输出出来啊,输出出来。那输出的时候呢,它实际上是把标准输入输入的文件名称,哎,进行打包之后生成到文件里去,你像这个命令我们都知道这个命令是不是就是把ETC里面的文件进行了一个文件的列表的打印。然后传给c po,那就作为了CPI的标准输入。然后O呢,就是把文件名传进来以后,我会把它进行一个打包,CPI。
29:01
最终就生成了一个CPI的文件后缀啊,这个我们可以来看一下。当然,我这由于已经没有ETC这个文件夹了。啊,所以我们干脆ETC。啊,我把它合并一下,合并完了以后呢,我们把ETC点二,呃后面跟数字,数字是零到九是吧,零到九星啊,那我们把这些呢,给它先去掉。啊,然后呢,我们用TXVF,我就解到当前目录下啊,写到当前目录下这有个ETC,我现在就可以用刚才说的那个命令画一个点,ETC是当前目录下的ETC,哎,然后呢,默认它不就列出文件名来了吗?然后用cpio o v就是把这些文件名。
30:07
传过来我帮你打包。打包成什么呢,CPI?啊,那这样的话呢,我们看一下是不是有一个叫新的CPI文件产生了,当然大家发现它和原来的帕B基本上一样,啥意思,也就是说它并不压缩,压缩它只是个打包啊,那这个预览的话呢,也能预览cpio,我们也有一个TV预览,预览cpio这个文件里的内容。啊,你可以预览它里面内容啊,当然既然能预览,那我们就不能解啊,比方说我们找一个文件夹来解一下。啊,那解的话呢,我们解到哪去呢?比如说我们解到这个time下巴。好,那我们现在把这个文件呢,写到这里面来,CP怎么解呢。
31:06
啊,如果有文件夹自动生成IDV写的写的是OPT下的。CPTC的CIO文件。就写到当前目录下了,大家看写到这了吧,ETC是不是生成了啊,你看生成了是吧,哎,就是说用它也可以打包也可以解包也可以,这个预览从功能上有点像他,但是这个命令已经不太用了,我们刚才看到互联网上那么多的文件没有有CPI这种格式。啊,当然这个为什么还要说呢?就是因为我们在Linux里确实能看到这样的文件存在。比方说这个文件。但是说这个文件也不是CPI后缀啊,那你看看我们fire一下。
32:02
不。啥格式?是GZ后缀的格式。那但是它长的这个文件的长的这个文件的后缀,它没有加GZ啊,没有加GZ的话呢,像这种文件他说是呃,文件的这个后后缀是应该是GZ的,但是它没加后缀,没加后缀的话呢,我们要解压缩,解压缩怎么解啊B对吧?啊或者是记on这都可以啊解发现问题了吗?啥问题解不开。为什么解不开,人家告诉你了,说no。啥意思,就是你的后缀不对。那这一点出乎我们的意料,好像我们现在目前来讲,Linux里对文件护具是不挑剔的,记得吧,但是这还真挑剔啊,那所以呢,咱们那就把它改的规矩一点吧,改的规矩一点叫。
33:14
不。GZ给它改成一个GZ,然后GZ和杠B再来试一试,诶好了吧,哎,那看看。咋样啊,是不是解开了?刚才25现在。69了。当然这时候这个文件我们再瞅一眼,看看它是什么格式啊。Cpio,那也就是说它也是个打包文件,那打包文件那我们就解开它吧,Cpio我们刚才说了,哎,我们可以这么解。当然你也可以先预览一下啊,预览的话呢,就是T,哎,后面跟上这个文件就可以预览,你看这里面就是。
34:03
啊,那我解开了吧,CPIO,然后。IDV。解开了,解开以后大家看一下这里面的文件。你看看他感觉。感觉。像啥呀?你看你看那个感觉像啥的。啊。你感觉这些东西好像这这这这啥东西啊,这是啊啊这这这什么东西啊,这是这不就是我们的操系统的根吗?那换句话说,这个文件它里面放的实际上就是一个小Linux。小型的Linux文件系统跟系统。啊,你看这里面。那LS都有。
35:01
是不是,但是这LS能用吗。那我们来试试呗,直接调动下不就行吗?看看能不能执行,真的能执行。所以我现在用的是人家的LS啊,不是我自己写的,你看我写的相对路径嘛,对吧,你要不踏实的,你把这个完整路径写上,是不是它真的是可以执行。换句话说,这个命令,这个文件,它实际上是内置了一个小的根文件系统。明白了吧,当然这个东西干嘛的,我们后面会讲啊,后面会讲。好,那你看我们就了解了CPI格式了,理解了吧。啊,偶尔用啊,一般我们不自己去打包,但是你要遇到了,你也会解开吧,对吧,我们不用它打包,但是万一人家有人打包了,你会解吗?会看吗?哎,就行了,那我们主流的用它就行啊,主流的用它。好了,到此呢,那么这个小章节啊,咱们就差不多给大家介绍完了啊。
36:07
那这章实际上讲的命令不少,讲的命令不少,难度不大吧,那今天是不是感觉心情好多了?那上次讲脚本,有些同学就开始。怀疑人生了啊,现在又想起来啊,人生还是很美满的,很美好的,那我们接着努力吧,好,那没满了,那我们就再来点难的啊,实在不难啊,吓唬你们,那我们回到我们最早给大家讲的那一章,哎,咱们有一张。还没学完文本编辑工具,在上次呢,我们已经讲了文本三剑客之一,我们还有文本三剑客之二之三,那今天我们来讲讲之二啊。
37:11
嗯。对于第二个,哎,这样我先。
我来说两句