文件搜索非常占用资源,所以尽量不要使用这个命令
避免少用该命令最好的方式是设置好文件夹结构,文件不要乱放
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 将文件中所有第一个字符包含#的行去掉