19、文件搜索命令which,find,locate

醉酒当歌 提交于 2020-03-22 17:32:55

3 月,跳不动了?>>>

1)命令名称:which                   类似的whereis [命令名称]

命令所在路径:/usr/bin/which            一样有相同的功能,但是这个命令同时

执行权限:全部                        会显示这个命令的帮助文档的路径

功能:显示系统命令所在的目录

语法:which [命令名称]

    如:which ls 查询ls所在的目录

        同时也会显示这个命令的别名信息

 

2)命令名称:find

命令所在路径:/usr/bin/find

原则:范围越小越好,否则范围太大,浪费系统资源

执行权限:全部

功能:查找文件或目录

语法:find [搜索路径或者说是搜索范围] 选项 [搜索关键词]

选项包括:1】-name  根据文件名查找

                       1》-name 关键字*  表示文件名包括关键字,然后*代表

                                 除了关键字之外,可以匹配任意字符

                       2》-name 关键字??? 表示文件名包括关键字,然后后面的每个问号表示单个                              字符,这是用在确定文件名总共有多少个字符的情况下用的,如:int???表                                 示总共有6个字符,以int开头

                 2】-size 根据文件大小查找

                     1》-size +多少数据块(block) 表示查找文件大于多少数据块的文件,一数据块                                  =512byte字节

                        如:find / -size  +204800查找大于100MB的文件

                     2》-size –多少数据块 表示查找文件小于多少数据块的文件

                     3》-size 多少数据块 表示查找文件等于多少数据块的文件

                3】-user 根据文件所有者查找

                    如:find /home –user samlee在home下查找所有者为samlee的文件。

                4】根据时间查找 –时间类型 –或者+时间

                                -表示多少时间之内, +则是大于多少时间

                    c—change改变,表示文件的属性被修改过,所谓文件属性就是用ls –l看到的文件                                          的信息,如所有者,所属组等

                    a—access访问

                    m—modify修改,表示文件的内容被修改过

                 1》  天:-ctime ,- atime  ,- mtime

                 2》  分钟:-cmin, -amin , -mmin

                         如:find /etc  –mmin  -120 表示查找2小时之内被访问过的文件

           5】在文件大小的范围内查找

                    1》-a  表示and 逻辑与,如:-size +2048 –a -20480 表示在两个值的范围间查找

                           -o  表示or逻辑或  如:-size -2048  – o  +20480 表示在小于2048,大于20480                             的范围查找

           6】文件类型查找-type 文件类型

           7】满足多个条件,用-a 连接

                      满足多个条件的一个,用-o连接

            8】查找某个文件,并对它执行某些操作

                      Find …….-exec 命令 {} \ ;  固定格式

                             -ok(询问是否执行后面的操作)

                         {}表示find查找到的内容

                         \ 表示转义符,直接执行命令的本义操作,例如Linux中,

                       rm=rm –i 如果直接执行\rm,会直接删除文件,而不会询问,此为本义操作

                               如果只是执行rm(其实是rm -i),则会询问是否删除

            9】利用i节点查找

                      -inum  i节点数字

                     如:find /etc –inum 16 –exec rm {} \;

                         表示在etc下查找i节点为16的文件,然后删除

                     这个选项通常用于那些文件名有歧义,要直接删除时,系统无法正

                     确识别,如文件名包含空格等

 

3)命令名称:locate

命令英文原意:list files in datebases(数据库)

命令所在路径:/usr/bin/locate

执行权限:全部

功能:寻找文件或目录

语法:locate [搜索关键字]

如:locate file 列出所有跟file相关的文件

缺点:只能检索系统数据库里的文件,不会在硬盘中查找,所以速度非常快,但是如果    

      新创建的文件,数据库没有及时更新,用此命令会查找不到

 所以此时会搭配另一个命令使用:

   命令名称:updatedb

命令英文原意:update the slocate database

命令所在路径:/bin/updatedb

执行权限:root

功能:建立整个系统目录文件的数据库,相当于每执行一次就会更新一次数据库

语法:updatedb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!