linux命令-find根据文本查找文件

Posted 红桃xin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux命令-find根据文本查找文件相关的知识,希望对你有一定的参考价值。

why

find 命令是在linux系统,地表最强工具之一。可以在目录层次结构中搜索文件和目录,并且对匹配结果执行操作。
一般搜索功能包括:

  • 权限
  • 类型
  • 日期
  • 所有权
  • 大小
  • 结合grep / sed 使用

find命令语法

常规语法:

find [][path...] [expression]
  • options - 定义开始查询的一个或多个目录
  • expression - 由于选项、搜索模式、运算分隔的操作组成

按文件名找

查找 包含hell的文件

find /home -type f -name *hell*

/home代表目录
/type f 是文件类型 d目录
-name 名字模糊匹配hell 或者*.log.gz查找 指定扩展名

根据[权限]查找

find /etc -perm 644 # 这里要是数字才行

r【读】:4
w【写】:2
x【执行】:1
644 从左到右分别是 owner /group/ other
在这里插入图片描述

可参考permissions

修改文件权限

find /var -type f -exec chmod 0755 {} \\;

{} ; 代表查询的结果并结束命令 \\代表转义

查找所有包含指定文本的文件

find /var -type f -exec grep 'hello' {} \\; -print
grep car `find -type f -name '*.txt'`  # 这种方式显示更优雅

{} ; 代表查询的结果并结束命令 \\代表转义
在这里插入图片描述

根据文件大小查找

通过参数-size实现。可以使用以下后缀指定文件大小:

  • b : 512字节块
  • c: 字节
  • w: 两字节
  • k: 千字节
  • M: 兆字节
  • G: 千兆字节
    示例:
    搜索大小范围内的文件。在1-2MB之前 的文件:
find . -type f -size +1M -size -21M  -ls

根据文件修改日期查找

find /etc -name "*.yml" -mtime 5 # 最近5天修改
find /etc -mtime +30 -daystart # 30天以前修改的

查找 并删除文件

find /etc -name 'test*' -delete

find 只能删除非空目录,类似rmdir

总结

以上展示如何在各种选项和条件下使用find命令。
本文也只是抛砖引玉。更多强大功能可以访问官网

参考文档

以上是关于linux命令-find根据文本查找文件的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础教程 linux下使用find命令根据系统时间查找文件用法

Linux 使用 find 命令查找文件

Linux基础教程 linux下使用find命令根据系统时间查找文件用法

文本查找工具find命令

grep命令和find命令都是查找,如何向测试人员介绍他们的区别?

Linux下find命令和grep命令查找文件