码迷,mamicode.com
首页 > 系统相关 > 详细

Linux学习日志--文件搜索命令

时间:2015-06-24 11:00:00      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:linux

开头总结:

             学习了Linux中的文件搜索命令find和locate,系统搜索命令whereis 和which ,字符串搜索命令grep,find和locate的区别和用法格式,什么是path环境变量以及其好处,whereis和which的用法,区别在于查询系统命令内容的不同,grep和find的区别,为什么要引入通配符? 什么情况下用通配符还是正则表达式?

Locate文件搜索命令:

1)格式:

   Locate [文件名]

2)更新数据库

        updatedb

 

 

 

好处:

相对于find命令来说,Locate耗费资源比较少,搜索速度快。

 

原理:

locate搜索文件名是在指定的后台数据库下搜索,一般是/var/lib/mlocate目录下,但是数据库是一天一次更新,所以你今天新建的文件,用locate找不到,但是可以updatedb命令强制更新,就可以找到了。

    而find命令是在文件系统上整体遍历。所以速度比较慢,耗费资源大。

 

 

命令搜索命令 whereis which(两者很像)

         :只能搜索系统命令

1)

例如:whereis ls 

 显示的是ls的位置和ls的帮助文档的位置。

2)

加了-b以后 就是只看ls的位置 不看帮助文档的位置

   Whereis -b ls

 

3)

加了-m以后 只看帮助文档的位置 不看Ls的位置

Where -m ls

 

技术分享

 

 

Which 看到命令的位置和别名(也有例外)  看不到命令的帮助文档。

4)什么是path环境变量?

  就是定义的系统命令搜索的路径。 

  这样的好处?

 输入命令,就不用在指定其所在的绝对路径。以后写好的脚本命令,就可以放在path中,直接用。

Path中定义了路径,(手工就不用在输入据对路径了,因为在path中配置了)在打ls时 会在这些路径中找,找到了会执行其命令的功能,找不到会显示找不到的信息,Command not found

 

 技术分享

 

Find命令(非常强大的命令)

1)格式

find [搜索范围][搜索条件]


技术分享

 

在根目录下 搜索名字为install.log的文件。(耗费资源比较大 因为在个目录下搜索)

 

2)通配符     什么是通配符?

                 为了进行模糊查询而诞生的符号

 

*   匹配任意内容

?   匹配任意一个字符

[]   匹配任意一个中括号内的字符

 

 

匹配install.log后面任意字符的文件和匹配所有文件


技术分享

 

         

  

  匹配 所有前面任意以g结尾的文件

   

 

技术分享



 

3)不区分大小写进行匹配

 

 Find  /root -iname install.log

 

注意一点: find是进行的完全匹配 就是查找的和原文件必须是一个名字,如果要进行模糊查询,那么就要用到通配符。

 

 

4)所有者文件和垃圾文件

一般的,我们把没有所有者的文件成为垃圾文件。需要手工清除。用到命令:

Find /root -nouser(常用)

但是内核产生和外来的(u盘)文件除外。

 

 

5)按文件大小进行查找
find  /root  -size 25k

找等于25k的文件

 Find /root  -size +25k

找大于25K的文件

Find /root  -size -25k

找小于25k的文件

 

6)按文件的节点序号查询

 Find -inode 26543

寻找节点为26543的文件。

 

7)扩展

 Find /root -size +20k -a -size --50k

-a是逻辑与  找大于20k并且小于50k文件。

 

Find /root -size +20k -a -size -50k -exec ls lh {}\;

 

将找到的文件的详细结果显现出来 

标准格式:
-exec  [命令]  {}\;

 

 

 

Grep字符串搜索命令:(包含匹配)

 

 1)  grep [选项字符串  要查找文件

 

 2)  -v 是查找不包含字符串的文件的内容   

 

 3)  -i  是不区分大小写

 

 

Grepfind的区别:

 

1)Find命令在系统当中搜索符合条件的文件,而grep命令在文件中搜索与字符串符合的内容;

2)find命令要想匹配,需要用通配符,通配符是完全匹配。Grep使用正则表达式进行匹配,是包含匹配。      

 

3)什么时候用通配符还是正则表达式?

 

如果匹配是文件的名称,那么就用通配符,如果搜索的是文件的内容,那么就应该用正则表达式。





Linux学习日志--文件搜索命令

标签:linux

原文地址:http://blog.csdn.net/bao2516090/article/details/46618671

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!