find文件查询

为什么要有文件查找

我们很多时候会忘记某个文件在什么位置,此时就需要进行文件查找。

linux如何实现文件查找

Linux文件查找主要是使用find命令来进行查找,find命令可以通过不同的维度来定位到某个想要查找的文件。

find命令查找语法

find [查询的范围] [选项] [表达式] [动作]
使用示例如下:

[root@oldboy ~]# find / -name "ls" 
# 以根目录下的所有文件作为范围,查询名字是ls的文件或目录
/usr/bin/ls

注:查询的范围越小查询的越快。

find针对文件名称、类型、大小、时间等方式查找文件

find逻辑运算符:
!或 -not:非
-a 或-and:并且
-o 或 -or: 或者
按照名称查找:
-name
-iname
使用示例如下:

[root@oldboy ~]# find /etc -name "*ens32" 
# 以/etc下的所有文件作为范围,查询名字中以ens32结尾的文件或目录

[root@oldboy ~]# find /etc -iname ".*ens32"
# 与上面的例子相同,唯一的区别在于iname参数不区分大小写

[root@oldboy ~]# find /etc ! -iname ".*ens32"
# 查找所有/etc下不以ens32结尾的文件或目录

按照类型查找:
-type
使用示例如下:

[root@oldboy ~]# find /etc -type d
# 查找/etc下的所有目录文件
	# 注:f 文件 d 目录 s 套接字文件 b 块设备文件 c 字符设备文件 l 链接文件 
[root@oldboy ~]# find /bin/ -type l
# 查找/bin下的所有类型是软链接的

按照大小进行查找:
-size
使用示例如下:

[root@oldboy ~]# find /etc -size +5M
# 查找/etc下大于5M的文件
[root@oldboy ~]# find /etc -size 5M
# 查找/etc下等于5M的文件
[root@oldboy ~]# find /etc -size -5M
# 查找/etc下小于5M的文件

按照时间进行查找:
-mtime
只能精确到天
使用示例如下:

[root@oldboy ~]# find . -mtime +7
# 查找当前目录下最近一次修改时间是7天以前的,不包含当天
[root@oldboy ~]# find . -mtime -7
# 查找当前目录下最近一次修改时间是7天内的内容,包含当天
[root@oldboy ~]# find . -mtime 7
# 查找当前目录下最近一次修改时间是前第七天的内容,不包含当天

按照属主进行查找:
-user
使用示例如下:

[root@oldboy ~]# find /home/ -user zhangsan
# 查找/home下的所有属主是zhangsan的文件或目录

按照属组进行查找:
-group
使用示例如下:

[root@oldboy ~]# find /home/ -group root
# 查找/home下的所有属组是root的文件或目录

注意:我们使用find查找的这些选项可以组合使用。

find查找后的处理动作

默认是-print 表示把查询后的结果打印出来
-ls 表示以长格式显示查询的结果
-delete 表示删除查找到的文件
-ok 自定义的shell命令:
使用示例如下:

[root@oldboy ~]# find . -mtime +7 -ok rm -f {} \;
# 删除前面查找到的文件或目录,每次执行操作都会要求用户确认

-exec 自定义的shell命令
使用示例如下:

[root@oldboy ~]# find . -mtime +7 -exec rm -f {} \;
# 删除前面查找到的文件或目录,每次执行操作无需用户确认

相比之下,执行速度-exec并不如使用xargs的速度快,因此,实际过程中尽可能还是使用xargs的方式去操作查询到的文件更好一点。

问:以知文件内容,怎么查询文件在哪里?
我们可以使用find与grep结合使用便能查询到目标文件。

[root@oldboy ~]# find . | xargs grep -iR "password" --color = auto
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值