find命令的用法

前言

find命令主要功能是根据文件的属性, 如:文件名, 文件类型, 文件大小, 文件的目录深度 等, 来对文件进行搜索。

一、根据文件名来搜索(-name)

如果需要根据文件名进行搜索, 需要使用参数 -name。根据文件名进行搜索有两种方式: 精确查询和模糊查询。关于模糊查询必须要使用对应的通配符,最常用的有两个, 分别为 *和 ?。其中 * 可以匹配零个或者多个字符, ?用于匹配单个字符。

#语法格式 
find 搜索的路径 -name 要搜索的文件名
#例如
find ./ -name "*.txt"

二、根据文件类型来搜索 (-type)

#语法格式 
find 搜索的路径 -type 要搜索的文件类型
#例如
find ./ -type f

三、根据文件大小来搜索 (-size)

如果需要根据文件大小进行搜索, 需要使用参数 -size。关于文件大小的单位有 k(小写), M(大写), G(大写)。关于文件大小的区间划分,这里举例如下:

# 搜索当前目录下 大于3M的所有文件 (3M, 正无穷)
$ find ./ -size +3M

# 搜索当前目录下 大于等于0M并且小于等于2M的文件 [0M,2M]
$ find ./ -size -3M

# 搜索当前目录下 大于2M并且小于等于3M的文件 (2M,3M]
$ find ./ -size 3M

# 搜索当前目录下 大于1M 并且 小于等于 3M 的文件 (1M,3M]
$ find ./ -size +1M -size -4M

四、根据目录层级来搜索

因为Linux的目录是树状结构, 所有目录可能有很多层, 在搜索某些属性的时候可以指定只搜索某几层目录, 相关的参数有两个, 分别为: -maxdepth和-mindepth。这两个参数不能单独使用, 必须和其他属性一起使用,也就是搜索某几层目录中满足条件的文件。

# 查找文件, 从根目录开始, 最多搜索3, 这个文件叫做 *.txt (1 <= 层数 <= 3)
find / -maxdepth 3 -name "*.txt"

五、同时执行多步操作

-exec、-ok和xargs 都是find命令执行多步操作的参数,其中-ok参数是交互式的,在处理find的结果的时会向用户发起询问。而xargs参数更高效,可以在find命令中直接使用管道完成前后命令的数据传递, 演示如下:

# 查找文件, 并且显示文件的详细信息
find ./ -maxdepth 2  -name "*.txt" | xargs ls -l

六、总结

xargs的效率比 -exec 效率高的原因是:-exec将find查询的结果逐条传递给后边的shell命令,xargs将find查询的结果一次性传递给后边的shell命令。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大白曰梦想家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值