文件搜索非常占用资源,所以尽量不要使用这个命令

避免少用该命令最好的方式是设置好文件夹结构,文件不要乱放

1.文件搜索命令:find

命令名称:find

所在路径:/bin/find

执行权限:所有用户

语法:find [搜索范围] [匹配条件]

功能:精准文件搜素

 

精准搜索:只搜索该文件名的文件,而不会搜索包含该文件名的文件

模糊搜索:搜索该文件名和包含该文件名的文件

 

find命令若想要使用模糊搜索则需要用*或其他通配符进行通配。?表示匹配单位字符,比如    ???inti    表示init前有三位字符,但不限制是哪个字符    inti??    表示inti后面有两个字符   

在使用搜索指定文件大小的选项时使用的值是指数据块数量,所以要注意换算

在Linux中,一个数据块是512字节,也就是0.5k,1kb2个数据块,1MB为2048个数据块

100MB为204800个数据块

要搜索大于100Mb的文件要填的值为+204800

 

这里的+-指的是大于或小于..+10并不是指未来10分钟之内被修改的文件...想想都知道不可能嘛...

而是指过去10分钟之前被修改的文件

exec表示对查询出来的文件执行操作     {}表示查询结果    \为转义符    ;表示结束

a表示and    o表示or

-ok表示询问操作    -exec表示不询问操作

find /etc -name init??? -a -type f -exec ls -l {} \

例子:命令意译:在/etc下查找一个以init开头后面有三个字符的文件 且对它进行查看详细信息的操做

如果有一个文件的文件名字非常非常的奇特,非常难打出来,那么可以用搜索命令搭配i节点选项查找,然后对它进行删除..

有硬链接的文件的i节点是相同的,只要如果要删除的文件有硬链接,那么会出来两个文件

 

2.文件搜索命令:locate

命令名称:locate

所在路径:/usr/bin/locate

执行权限:所有用户

语法:locate 文件名

功能描述:在文件资料库查找文件

实例:locate inittan

 

locate 搜索命令比find命令快,因为该命令是在资料库中搜索,但是如果资料库没有及时更新,则容易出现无查找到文件的问题。

可以手动更新资料库:updatedb

不过/tmp下的文件是不会再资料库中有的

-i不区分大小写

 

3.文件搜索命令:which

命令名称:which

所在路径:/usr/bin/which

执行权限:所有用户

语法:which [命令]

功能描述:搜索命令所在目录及其别名信息,快速查找命令的所在路径(就能知道命令执行权限了),也能知道命令别名(例如rm别名‘rm -i’)

范例:which ls

 

4.命令搜索命令:whereis 与which基本没区别,就是whereis还会显示命令帮助文档路径

 

5.文件字符匹配命令:grep

命令所在路径:/bin/grep   执行权限:所有用户

语法:grep -iv [指定字串] [文件]

功能描述: 在文件中搜寻字串匹配的行并且输出  -i不区分大小写 -v排除指定字串

例如:grep mysql /root/install.log

grep -v # /etc/inittab 将文件中所有包含#的行去掉

grep -v ^# /etc/inittab 将文件中所有第一个字符包含#的行去掉