00:00
但宽一搜索的话,还有一个命令,就这个命令。这个命,这个命令呢,就是用的用这个命令用的不太多,但是它尾脑上有这个命令。这个命令也是做搜索的。他搜索的从效率上来讲,它比这个犯的这个命令效率更高。嗯。这个lo这个品种,它也是搜索。然后呢,这是这第14个,我把它单独列出来了,这个命令也是搜索。这个他也是搜索。这样。这个都写在一起吧,看看这个这个也是搜索,这个它的搜索它是搜索原理跟这个fan的搜索不一样。
01:03
翻的搜索,它不管是根据名称,根据大小,还是根据所有者,它都会到指定的这个搜索范围之内去便利它下边那些文件或者怎么录取。直到按照我们的搜索的标准去找到什么目标子目录或者目标文件,然后给我们列出来,它会实际的到搜索范围之内去一个文件,一个目录的便利去查找,去去搜他去真正去查找,这个呢,这个它不是真正查找,它是干嘛,它主要是到一棵数据库树里边去查找。数据库树什么意思?当然我们跟大家说了,Linux里边有一棵什么目录树是吗?这棵目录树有一个根,就是那个什么根目录斜杠,然后它下边按照层级式的可以有很多子目录,子目录下边又有很多的其他的一些子目录,它采用一个这种层级式的目录结构。
02:05
那么我们说这个层级式的目录结构,我们就把它叫做Linux里边叫一颗目录树,叫一个目数据库,它存到Linux数据库里边。用Linux在底层它维护一个数据,它维护一个数据库,这个数就是其中的数据。维护一棵目录树,他把这一棵树存到数据库里边。那么这个lo呢,他是这样,他说你搜索的内容,它不是到真正搜索范围里边去找那些目录,子目录,还有那些文件,一个一个去找啊,是不是符合我搜索条件,他不是这的。他是到这个树里边去搜索。根据关键句,根据关键字去搜索去了。这道吗?那么他根据关系字怎么操作,就是给他只能根据名称去搜索。因为这个数里边只是保存各个目录或者名或者文件的这个什么名称,它到这个数里边搜索,那到这个数里边做做怎么了,你只要你的文件或者子目录,这些目录都在这棵树里边了,他都到这边去找着。
03:13
看看这个这个数里边保存的这个文件在哪个什么目录里边,然后呢,文件名叫什么,文件的一些属性等等都在这上面,他到这个数里边查找,能到这个树里边查找,跟到文件目录里边直接查找,这有什么区别?他到树里边查找,他不用访问磁盘。所以说它的效率会很高,他直接访问这种数据库内存。摘一棵树。所以它的访问效率特别高,而且他查找的时候,他没有查找范围,它的范围就在整个树里边查找。所以说你只要是你的目录和文件,只要在这个数里边符合关键字的,他都给你搜出来。知道吗?它都给你搜出了,只要是在这个树里边都给你搜出了,所以说它的范围就在整个,一个是它是在整棵树里边,在整棵目录树里边查找,那我们这个地方给大家建议在那么整个啊在整棵吧。
04:13
树木。目录树中来查搜索。搜索文件或者目录。那他什么在目录数的,它都是都是根据么?都是根据根据名称搜索,根据名称去搜索知道。所以它的效率比较高。他不,他不去访问目录下边的一些词方,他不,他不去变利去知道吗?所以他的效率比较高,他直接访问数他效率比较高。效率,那你说老师效率高,你怎么说他不常用呢?
05:02
因为我们这一棵树,我们说根据。根据我们的这个什么Linux底层运行的机制,你在你你在你Linux系统上创建一个目录,或者创建一个文件,它不会及时的。把你那个目录新创建的目录和文件读,那么来加入到这个数里边,他不会说啊,你创建一个文件,它可以在数里边加一个节点,创建文件加一个节点,它不是这样的,为什么?因为这样效率太低了,他追求到这个效知。这样效率太低了,为什么他那他怎么办呢?他找你创建了几个文件,创建了几个目录,他按照一定的策略。他会是那么不定时的按照他的策略去把你隔一段时间把你创建这个文件和目录加到这个数里边,隔一段时间就去什么搜索一下,你又创建哪些文件,哪些目录,然后去什么去加到这个数里边,再一个你要如果说从文件里边把某一把你的从你的Linux系统里边把某一个目录或文件删掉了。
06:03
按理说也应该及时的从这里边什么树里边把它移除掉,它不会及时的移除。为什么?如果每次都易主,它的效率太低了,干什么,它也是按一定策略去同步整个什么。文件系统,然后跟这一棵目录树。所以这就是什么造成了locate它的搜索数据不及时,不能够及时反映当时整个什么。Linux系统里边这个文件和目录的一个,这这这个真正的这个。文件和目录存在的一些情况,所以它的系统它的效率虽然高,但是它不能够及时的反映,反映出来你整个系统的真实的这个文件和目录存在这种情况知道吗?啊,所以大家为了及时的反映,能够让他反映出当时这个文件,这个系统里边到底就有哪些文件用目录,所以大家我们用它之前,首先都让他同步一下数据库是吧?怎么同步数据库要执行一个命令,哪些命令就这个命令叫做update DB update DB它可以同步。
07:14
操作系统的文件,这种系统和那个数据库和底层的数据库的一些数据都给你同步了,所以对于那些没有同步的,他就先同步,同步完了之后再执行它,所以执行单的时候,一般来讲先执行它,然后呢再loate去搜索指定的关键字,关键字什么。所以你比如说你看我现在我想搜索整个系统里边所有谁的所有。所有的假如说it.test那我就可以这么来写,然后呢,这个地方来写所有的it,所有的点T吧,我就这叫lo。然后呢,星点天子。这样就是在整个目录数里边去搜索所有的T文件。
08:03
你只要在这梦竹树里边,都给你做到了。但是我为了让他反映这种数据的实时性,那什么前面先什么这影响的。真用压头,这样的话,他就能够及时的反映整个整个操作系统真实的这种数据的情况。你比如说他我们这个地方,那我这么让他同步一下,哎,但是它这个同步很慢。海吗?他得去扫描磁盘上各个什么目录。它下边那些文件和这个,呃,和那些子目录,然后都同步到那棵树里,大家看现在就完了,完了之后呢,现在我再去搜索,它就能全部搜索出来,嗯,大家看他这种搜索就很快。他这种速度就很快了。为什么?因为他就从树里边搜索。他比饭都快,但是在他之前先做了这件事。他慢了,所以从效率上来讲,并不是说它的效率多高。
09:04
你前你把这个效率花在前面了,所以说后边说他说他效率高,其实不一定是他的效率,如果只是从搜索的角度来讲,它的效率确实比贩子高。但是他做前面做了一些什么准备工作,所以一般来讲,我们实际开发的时候,其实咱很少用这个,但你对这个命令了解一下就行了。好,这是我们说的这个。
我来说两句