00:00
好,那么这一章呢,呃,我们要这个学习一些,呃文件的一些高级的一些呃管理方式叭,如说呃,如何去查找文件啊,定位,包括我们怎么去压缩呀,解压啊,做踏包啊,包括一些排序什么这些的一些高级的文件操作啊。呃首先来说这个查找啊,你比如说呃,咱们其实查找之前也用过一些,比如说咱们用过这个which是吧,咱们说它是干嘛的,它是查找这个命令的原始文件啊,比如说which RM,这命令他告诉你了它原始文件是这个是吧,或者which,你比如说touch是吧,他告诉原始文件是这个啊,你直接这个就是它命令的原始文件啊,生产中除了用这个以外呢,还有这个where is啊,它也是可以达到相同的目的,而且他呢,查找出来更多,它除了查找这个命令,他告诉你在哪儿,还有这个什么,你比如这个user share啊,这man手册这个其实就是它的这个。帮助文档啊,他写的这个信息就更详细了啊,而生产中你用哪个习惯你用哪个啊,不用都记,咱们还说这命令那么多是吧,你习惯用哪个就记哪个,大概用着用着就熟了啊,我一般是用which用的多啊,呃,包括说呃,像这是查找命令是吧?呃,查找比如说文件名啊,比如生产中你说哎,有个文件名我忘了说这个在哪了,比如说我大概记得名字,比如说咱们说呃,这个文件ETC下pass的是吧,这个文件它是存咱们账号的是吧?呃,这个文件我说我忘了,我只记得它这名字叫password了,说这个,呃,具体在哪我忘了,怎么办呢?你可以用这个locate,嗯,Locate来查找,Locate后面加password啊,大家要注意啊,你看这鲍鱼错,这个locate呀,不能直接来用啊,为什么呢?就是这个locate就是查找文件名的啊,它会把相呃跟这个文件名那个相同的,包括包含这个文件名这文件都列出来,但是呢,他又。
01:59
要求在使用之前,它的原理是什么呢?他查找文件名,他要给整个系统所有文件啊,呃,做一个索引啊,所以说你看他给你报错,他说什么,他说locate cannot state什么呢?这个什么什么DB,这一看这是个数据库啊,数据库的文件database嘛,是吧?啊数据库课程,咱们在这个中级课程会详细讲一些my circle啊,Oracle啊,这些包括这个post green circle,包括这个mango DB啊,非关系性的。
02:29
那么他说他说没有这个数据库文件啊,这是什么原理呢?Lo k在查找一个文件的时候,他要求把系统首先你得做一个索引啊,把所有这个文件扫一遍,做一索引存在这数据库里,然后他每次找这文件,他从这数据库里去提数据啊,所以说你直接找这个不行的,系统这个做好了,呃,你至少运行一次什么呢?Update DB啊,升级一下数据库是吧,实际第一次是建立数据库,后期这个你不用做啊,它其实系统有计划任务,会定期的去做,就做这索引,系统改变它会做,呃,因为我这系统装完了后,我直接打一快照嘛,所以它等于还没进执行这过程,所以它直接lo就不行啊,你生产一线的机器一般来说都已经生成这数据库了啊,你就可以直接用locate它啊,比如password,你看这一搜好家伙搜这么多啊,你看它只要是包含这个名字,包括点上Mo的什么这个,呃什么这个。
03:25
呃,包括是文件名是直接就是这个的,你看这个是是一个目录里的是吧,他都不能给你找出来啊,比对aw的什么都有啊,咱们真正想要,那你看头一个就来e passwor啊搜啊,只要是名字,他那个索引数据里一搜啊,名字包含这个password的,它都给你就列出来了啊,很全啊,但是实际上在生产一线真正用啊,呃,这K还真不愿意用,为什么呢?因为它呃功能比较单一啊,咱们真正在生产一线愿意用的个愿意用泛啊泛的。
04:02
那为什么愿意用这个呢?这功能强的多啊,呃,它支持查找的,除了按这个,咱们说按文件名查找是吧?它这个你看咱们慢一下,这个选项你可以看啊,嗯,它支持按很多种方式去查找,嗯,可以按照这个名字查找啊,我直接在这儿我看啊,嗯,你看就直接按名字查找是吧?可以按这个类型,比如说它是个文件呢,它是个目录啊,它是个块文件啊,就是这个文件是什么类型,我来查找,那可以按它的权限啊,你比如说我找一下这个,我这个里边有没有这777权限的文件,这种七七权限的权限过大啊叭较危险,我得找出来给他那个看一看,包括还可以按这个大小,比如说我找着这目录里,整个系统里,我有没有大于两个G的单个文件是吧,这可能是有有有有点太占地儿了是吧?啊这种它可以按照很多种方式去查找啊,所以说生产一用。
05:02
Find的,呃,更多啊呃,这个find呢,比如说咱们讲最最简单的用法就是比如说按照名称来查找啊,就跟这个lo比较像,按名字来找,怎么找呢?它的语法是这样的,首先find的后边呢,写你在哪找,比如说我比如说我还想找password这文件是吧,说我知道大概在ETC底下啊,或者说我知道他在这个什么底下,你就直接写这地儿就行,说我的确不知道,那你就跟啊从跟着那就不就都扫一遍嘛,是吧?啊呃,比如说我从根下找是吧,然后呢,名字按名字查找,后边这参数是按什么查找,我说的可以按文件类型啊,什么这些都行啊,按名字找,说名字叫什么呢?叫password啊,Pass WD这个文件啊回车你看他就开始在在这个根底下开始找了,找出来了,你看EDC底下有一个啊,帕地底下有一个啊,User bin下有一个啊,还有包括这个什么,这底下有一个是吧,有说诶这个找出。
06:02
后来怎么没有这个?这个多啊,没有locate这找的多,为什么呢?因为你注意啊,这个查找它是按照精确查找,它就说名字必须叫这个的,它才给你列出来,它不像locate,你看lo它里边你看g password d,呃,点一点G,它名字里只要包含这个都给你找出来了啊,那实际上呢,你用饭的,有人说那你这功能不比他弱嘛,你找的少啊,实际上你可以那个像这样都找出来,饭的命令实际比他强,就是你如果想只要是包含都长,你可以干什么呢?咱们讲linu是知识通配符的啊,加一星啊,前后各加一星,星表示什么呢?星咱们说过说表示这个任何零个或多个字符是吧?啊那好你再回撤你去看,这不找出来一样嘛,是吧?星就是说什么意思呢?名字叫这个的,并且前边和后边有字符或者没字符的全给我列出来,那不就是包含这个的就都列出来了,对吧,你看找出来这不也一堆嘛,是吧,哎,一样,只不过。
07:05
它的语法呢,就是说呃比较灵活,那功能比较强,你想找就叫这名的,它就列出来就叫这名,你想找包含的那就就包含的是吧,你比如说我问号,问号不代表单个字符啊啊你看那就是前面有或者没有都行啊,你看前面这是没有的,这是有的是吧,后边只要一位,你看这后边只有一位的给列出来,所以饭的这个其实它功能更强啊,至于这个通配符呢,咱们有机会到讲正则表达式啊什么这些时候再去讲这块其实不属于Li尼克斯课程啊,那么这是咱们讲按名字来查找是吧,除了这按名字少呢,呃,这是一种啊呃,还有什么呢?你看还可以按这个类型找,比如说这个T啊类型,比如说你是个文件普通文件类型的,或者说是个这个目录类型的啊,你比如说我在这个这回咱们在ETC下啊。
08:03
嗯,杠type,比如是个D啊,是个文件夹类型的,你看找出来这些有说老师这这是文件夹吗?你可以看一眼,你看你在table后边有东西是吧,这个这这明显文件夹吗?底下还有东西呢是吧?啊那有的,你比如说我这回按F啊按文件找,那你说这是文件吗?这肯定不是文件夹,这就是文件了,你看你一列出来后边没东西了,这不是文件夹是吧?要是文件夹你按table,它后边会出一鞋杠对吧?哎,这是文件啊呃,文件夹包括你说这个,比如说我在这个呃根下找啊在根下找什么呢?类型是呃,C的是吧?你看它肯定好多都是在第一位,咱们说这些类型是吧,都是这个C,咱们叫块设备是吧?啊你看一下这个问题是吧?哎,C类型的还有什么呀?那底下肯定还有好多这个是吧,这个这个这个。
09:01
啊,包括这个链接类型的是吧?哎,在跟下找链接类型的,你看这些啊,这都是你看这不都是链接嘛,是吧?哎,他可以按文件这个类型来进行这个查找。还可以按什么呢?还可以,比如说你看啊fund还可以这样,嗯,Fund,比如说跟下啊杠user按照用户来找,就是说就是说我按照秦是吧,呃,什么意思呢?我在跟下找一找属于秦的文件都是哪些,你看杠user。杠换的跟下杠user us啊写错了user亲啊,你看找到这些啊,这你看有的有说那个没有这个文件夹,这咱们讲那个夹时讲说这个目录啊PC还有什么这个它是这个属于是就有关,就没是那个内映,所以这种文件夹你看一找他告诉你没有啊,这不是错啊,这就是那个文件夹的特性啊,然后他找说你看这几个文件夹,他说都是属于勤的,那咱们随便找一个,比如这文件是吧。
10:06
拷贝一下,你看一眼这文件,你看是不是属于勤政用户的,对吧?啊,包括这个啊,咱们可以看一眼,哎,看。是吧,这是。这是个文件夹啊。这是个文件夹,你看这文件夹也是属于,那肯定啊,后下的肯定都属于是吧?啊,这是按用户来找啊,你比如说一般那个CS考试老愿意出个题,就是把某一个用户的文件考到哪去啊,啊这种题,那你把这底下所有的用户找出来啊,考到一个地去啊,但是这个咱们一会儿再说啊,这得用到一个扩展功能啊,泛在的,咱们先把这按什么类型的找说完啊,包括这个杠U字可以啊。刚group啊一样啊,按组是琴的这组的来找啊,一样这两个一个意思啊,用杠user用的多啊,还有比如什么呢?杠size啊size,比如说杠size加啊一兆啊,哎,这太多了,比如说咱们在ETC下找一下啊杠塞加一兆什么意思呢?就是说找一下ETC这目录底下啊呃尺这个大小比照大的文件啊,大文件嘛,是吧啊它找出来这么几个,你比如说咱们看一下这个啊,咱们看一下这个LL-LH啊加个H,它就把这大小给你转成这个可阅读,你看这1.4兆啊,包括这个文件是吧是吧,你看一眼啊LH这文件,你看这文件3.6张啊。
11:42
这是大于一兆的,那小于一兆的呢,就是减嘛,是吧?啊,这就多了啊,这些文件都是小于一兆的啊,杠号LH,你看一下这个是吧?哎,这是按大小来找啊,零字节这是按大小来找啊,还可以按什么呢?呃,还可以按这个权限啊,按权限来找。
12:03
比如说find啊,跟下边杠什么呢?P,但是杠P这咱不细讲,为什么呢?干P这个干权限找第一个生产一线用的不多,第二个呢,就是说这个特别复杂啊,你要是有兴趣的话啊,等到高级课程,咱们有一些东西涉及到它啊呃,初级课程你比如说我就比如说777的啊,找一下这跟一下权限777的文件啊,那这这道些这些文件权限不安全啊,比如说你随便看一个,你看这文件啊,这文件你看是不是777的是吧?哎,他可以按权线来找,实际上在生产一线这个光这个不干破,我为什么不多深讲,讲这个容易,讲深了讲糊涂啊,这个还可以按照是大于多少权限,小于多少权限啊,一般来说这个用的少,咱们就大概说说就行啊,那么以及呢,它支持这个泛的,还支持什么通配服啊,就是支持这个羽或飞啊,你比如什么意思呢,比如说我想找一下啊。
13:04
这个这个。嗯,比如说啊,我想找一下这个ETC底下啊,这个类型呢,是文件类型的啊,然后呢,暗暗的什么呢鱼啊,然后呢,杠size还得大于一兆的,哎,这个。的没有啊,不是啊,这个得是加一个这个啊,什么意思呢?就是说它支持and or not这种语法啊,什么意思,它首先判断这两个条件,And连接的得是这俩条件都满足啊,又得是类型是文件的,又得是大于一兆的,最后找出来是这个啊,那你看看这是不是啊,你看。啊对,再加一杠。啊,你看这文件大于一兆,而且是个文件类型的啊,它是这个意思啊,它是这个意思啊,那么雨或非这种它都支持啊,这是呃泛的,然后呢,泛的最重要的它支持二次操作,就是扩展操作啊这个什么意思呢?我们看一下啊。
14:09
就比如说吧,呃,我们看啊。它支持一个参数叫杠1SEC啊,这是什么呢?就是二次的一个操作啊,这个什么意思呢?就是说我把找出来这些东西,我比如说我想把它全删了呀,或者说我把想都拷的一个地儿呀,或者我统一想把它这个列出来呀,或者我想对它一些什么操作,一些可执行操作,那我就需要对这个找出来这些结果,这些文件的结果及做一个二次操作,它支是一种语法啊,这个语法呢书写呢比较特殊啊,书写比较特殊啊,我看这里边有没有例子,一般这个有的,这个慢手册里它是有例子看啊,没有例子他没写,他没写完,我直接写吧,咱们看好啊,首先犯的先找你,比如说我找什么呢?这样咱们讲一道这个经典的csc考题啊,Csc从五啊六啊七啊都出这个,而找什么呢?他是让你找出这个跟下系统里所有属于这个琴这个用户的文件啊,或者文件夹也行啊,就找出来所有属于。
15:13
频的,然后我给它拷到桌面上啊,比如说桌面上我们建一个文件夹叫什么呢,叫做。就叫做琴吧,啊诶啊,Root下的desktop我建一文件夹,你看桌面我建一文件夹就叫琴啊,一会儿我要求把找出来的所有属于琴的文件也好,文件夹都拷在这文件夹里,这不就二次操作嘛,首先得找,找出来之后呢,做一二次操作,把它都拷进来啊,那当然你可以先找泛的跟下语法是吧,找属于用户勤的文件啊,这好找找出来是吧?当然他还要求你把这些东西都拷过来,这怎么做呀?二次操作的语法是这样的啊,用杠EXE开头啊,用这个右斜号分号结尾,咱们说了右斜杠表示这个转移符,它表示这个意思啊,不是别的意思,是表示这个分号本身的意思,实际上它就是一个开头和结尾,这中间的命令要被进行二次执行,中间的命令是什么呢?就是对这个文件的一些操作啊,我把这个这个地儿给你拉长点啊,这样你好看看明白一点啊。
16:24
你看中间这一堆啊,咱们要写的这个命令就写在中间这块,从这开头到这结尾,中间的是命令,叭,如说我想拷贝是吧,那怎么做呢?我在这开始写,比如说CP啊,CP谁呢。嗯,杠RF,因为我找出来可能有文件有文件夹,所以我来1R是吧,连有文件夹的话,加一-R它文件夹就给拷过来了,F呢,表示强制啊,F表示强制,因为万一找出来俩文件同名的,我强制给它拷过来覆盖是吧?然后呢,呃,找着的结果即用大括号来表示,这个咱们之前也讲过,这大括号代表什么,代表循环体啊,你找出来这个东西不是一个一个这些文件嘛,它就表示把这些文件每一个代到这儿来啊,然后呢,拷到哪儿呢?拷到root下的s top下的秦下啊这就是那命令什么呢?CP-RF大括号代表着一个一个的文件,每次调一个进来啊,这个大括号咱们你比如说之前不讲过touch下,比如说是吧,我来一大括号是吧,一点点九啊,你看一眼这后面下,你看是不是循环12356789是吧,大括号代表循环体,它在这个命令里呢,就是把。
17:40
前面找到的文件,每一个拷到这儿一次,在下一个拷到这循环拷就是CP-RF这个文件循环,这个文件拷到这儿,再下一个拷到这儿,它是这个意思啊,注意这个语法啊,首先你先找着这东西,找着东西以后呢,后边执行二次操作杠1SEC开头右斜杠分号结尾,中间是这个命令啊,命令里边每一次找到这个东西用什么替代呢?用大括号替代,这就是这个整个语法,那你直接回撤,你发现了啊,还是该报错,报错,但是报完错之后你看啊,找出来的文件,文件夹全跑这儿了。
18:16
但是你要注意啊,你是用root执行的这操作,所以你CP过来的东西就不再是属于了啊,什么意思,你现在看一眼,你拷过来这文件是不是属于root root了啊,原文件是属于琴的啊,这些原文件属于琴,但是你拿这个指令一执行,拷到这个文件夹里,它就属于root了,因为是root做的操作是吧?啊好,这是咱们看这个啊,这个题呃,最好掌握一下,因为每年的CS考试一般都考这个啊,都考这个。啊,这是咱们讲泛的啊,那么这个二次操作呢,还有很多就是你里边切什么都行,只要是个命令就行,那比如说我想把这些东西,我想看看这些东西,比如说咱们前面还有一个饭点什么呢。呃,比如说我find了刚才ETC下是吧,杠size是吧,比如说大于一兆的文件啊,我想把它列出来分别是多大,那怎么办呢?你可以这样,RL-LH是吧?啊分别列出大括号表示这一个一个循环体是吧?回车啊,你看这就把找出来的这些文件一个一个列出来,而且杠LH,你把这大小也给列出来了是吧?然后你要是再狠点,你比如说我中间命令是什么都行,我只要是大括号代表那命令结果RM-R我就把找出来这些哥们可能都删了是吧,我就不这么做了,我这意思就是说你中间这个这一段,就是你要对这些找来的文件进行什么操作啊,它这种语法呢,可以帮助你对于找出来的所有文件进行一个二次操作啊,杠ESEC开头右斜杠分号结尾啊,这是咱们讲这个叫find的这个操作。
我来说两句