Linux(十二):常用命令-文件搜索命令-文件搜索命令find

时间:2021-10-24 16:32:19

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

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

Linux(十二):常用命令-文件搜索命令-文件搜索命令find

该命令有非常多选项,这里只记部分选项

该命令为精确搜索,并非模糊搜索.

所谓精准搜索,就是如果你搜文件名为demo

那只会将文件名demo的文件列出来,不会将含有demo字段的文件列出来

如果要使用模糊搜索,那么需要用**将字段括起来,其实*是通配符...

windows是默认使用模糊搜索

演示一下吧:使用搜索命令在/etc下搜索文件名为inti的文件

Linux(十二):常用命令-文件搜索命令-文件搜索命令find

没有显示任何东西,说明没有该文件

使用模糊搜索:

Linux(十二):常用命令-文件搜索命令-文件搜索命令find

也没有


*是通配符,即不限制位数与每一位的值

inti*即表示以inti开头的文件名

*inti即表示以inti结尾的文件名

其实这些是正则表达式的知识...稍微讲一点点

?表示匹配单位字符,比如    ???inti    表示init前有三位字符,但不限制是哪个字符    inti??    表示inti后面有两个字符   

Linux(十二):常用命令-文件搜索命令-文件搜索命令find

用*init*试试吧:

能搜到很多包含init的文件

Linux(十二):常用命令-文件搜索命令-文件搜索命令find

常用选项:

Linux(十二):常用命令-文件搜索命令-文件搜索命令find

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

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

100MB为204800个数据块

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


Linux(十二):常用命令-文件搜索命令-文件搜索命令find

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

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

Linux(十二):常用命令-文件搜索命令-文件搜索命令find

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

a表示and    o表示or

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

Linux(十二):常用命令-文件搜索命令-文件搜索命令find

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

Linux(十二):常用命令-文件搜索命令-文件搜索命令find

说一个操作技巧..

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

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


好了,基本是这样.