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基础教程 linux下使用find命令根据系统时间查找文件用法