linux初学之5——常用命令 之 文件搜索命令

来源:互联网 发布:840Mgpu安装tensorflow 编辑:程序博客网 时间:2024/06/07 18:07

1、仅搜索文件:locate

2、搜索命令:whereis whatis

3、搜索全部:find

4、搜索文本内容:grep


1、仅搜索文件:locate

  ①名片:

             命令名称:locate
             英文原意:locate
             所在路径:/usr/bin/locate
            执行权限:所有用户
            功能描述:locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库

            缺点:只能按照文件搜索

            补充说明:locate是按照/etc/updatedb.conf的配置去查找

         ② 语法:locate 文件名           

         ③示例     

[root@localhost ~]# locate /etc/issuelocate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录[root@localhost ~]# updatedb[root@localhost ~]# locate /etc/issue/etc/issue/etc/issue.net
2、搜索命令:whereis which

(1) whereis:只能搜索系统命令,可以看到帮助文档的位置
         -b 只看可执行文件所在位置;-m:只看帮助
         类似命令: whoami:   whatis:
(2)which:搜索命令的命令,如果有别名,可以查看别名
whereis 和which找不到cd:cd是shell自带的。

3、搜索全部:find

 ①名片:

             命令名称:find
             英文原意:find
             所在路径:/usr/bin/find
            执行权限:所有用户
            功能描述:最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

            缺点:全文搜索、耗费资源

 ② 语法:     find [指定目录] [指定条件]  [指定动作]

   (1)通配符 ? * []
 find /root -iname abc :不区分大小写
 find /root -user root:查找所有者
 find /root -nouser :没有所有者(内核产生、外来文件(U盘等))
(2)按照时间:
 find /var/log/ -mtime +10
-10 10天内修改文件
10 10天当天修改的文件
+10 10天前修改的文件
 -atime:文件访问时间
 -ctime:改变文件属性
 -mtime:修改文件内容
(3)按照文件大小
 find /root -size 25k 25M(兆要大写,k要小写,默认的单位是块(硬盘的扇区,每个扇区是512字节))
-25k 小于25k
25k 等于 25k
+25k 大于25k
(4)按照i节点搜索
 find -inum 262421
(5)逻辑运算
 find /etc -size +20k -a size -50k
-a : 逻辑与
-o:逻辑或


4、搜索文本内容:grep

语法: grep [选项]  字符串 文件名

  选项:

       -v:取反

   -i:忽略大小写


5、find 与grep区别


find :搜索文件名:使用通配符(完全匹配)
grep:
搜索文件内容:使用正则表达式(包含匹配)


find:系统中搜索文件名

grep:文件中搜索字符串



0 0