Linux下查找文件(find, grep)

sde09de 2024-08-15 16:07:02 阅读 89

目录

1. find : 按 文件名 正则表达式查找1.1 按文件名1.2 按文件类型1.3 按文件大小查找1.4 按文件日期查找1.4.1 按创建日期1.4.2 按修改日期1.4.3 按访问日期

1.5 按深度查找1.5.1 路径作为起始点,向下(向它的子目录)查找 n 层

1.6 高级查找:-exec,-ok,管道1.6.1 -exce, -ok1.6.2 管道

2. grep:按 内容 正则表达式匹配查找3. find 和 grep 结合使用4. 举例:在某个目录下,查看含有某个字段的目录、文件


Linux 中,一切皆文件,查找文件是必须要掌握的。

1. find : 按 文件名 正则表达式查找

1.1 按文件名

find 路径 -name 名字

<code>// 查找/home 目录下所有以 .c 为后缀的文件

find /home -name "*.c"

1.2 按文件类型

find 路径 -type 类型

普通类型 f目录 d符号链接 l (link)块设备文件 b字符设备文件 csocket 文件 s管道文件 p

find /root/study/c++/ -type d

1.3 按文件大小查找

find 路径 -size 范围

范围: + 表示大于,- 表示小于,不写表示等于大小:兆 M(必须大写),千 k(必须小写),c(表示字符)

find /root/ -size +0k -size -10k

1.4 按文件日期查找

-n:n 天以内

+n: n 天以外

1.4.1 按创建日期

find 路径 -ctime -n/+n

find /root -ctime -10

find /root -ctime +10

1.4.2 按修改日期

find 路径 -mtime -n/+n

1.4.3 按访问日期

find 路径 -atime -n/+n

1.5 按深度查找

1.5.1 路径作为起始点,向下(向它的子目录)查找 n 层

1)最大 n 层

find 路径 -maxdepth n

find ./ -maxdepth 2

2)最小 n 层

find 路径 -mindepth n

1.6 高级查找:-exec,-ok,管道

1.6.1 -exce, -ok

find 路径 查找方式及名字 -exec shell命令 {} ;

find 路径 查找方式及名字 -ok shell命令 {} ;

-ok 更安全,推荐使用

find ./ -name "*.cpp" -exce ls -s { } \;

find ./ -name "*.cpp" -ok ls -s { } \;

1.6.2 管道

有较多文件时,优先使用

find 路径 查找方式 | xargs shell命令

find ./ -name "*.cpp" | xargs ls -a


2. grep:按 内容 正则表达式匹配查找

grep 参数 “内容” 在哪个目录或文件查找

参数:

-r 递归查找(在目录查找时,可以用这个参数)-n 可以显示该查找内容所在的行号(在文件或目录查找时,可以用这个参数)-i 可以忽略大小写查找-v 反向查找,输出没有匹配到的字符串(不显示 给定的 某字符串 )

可以最后加上 -l(list),显示文件名,不显示具体的内容:

grep -r "chars" ./root -l


3. find 和 grep 结合使用

先找到文件:find

找到文件后,查找具体哪些文件,包括某个字符串:grep

也可能无法确认文件名,直接用 grep 在某个大目录下查找

4. 举例:在某个目录下,查看含有某个字段的目录、文件

find . 是一体的

| xargs 是一体的 , 管道

grep “内容” 是一体的

1) 查找出目录、文件

find . | xargs grep "charas"

在这里插入图片描述

2)查找出文件,不找目录

<code>find . type f | xargs grep "charas"

在这里插入图片描述

3)查找文件以后,只列出文件名;不列具体内容

<code>find . -type -f | xargs grep "chars" -l

在这里插入图片描述

4)在以上查找的基础上,需要过滤掉一些文件

-prune -o -name

-prune -o -type 等

<code>find . -path ./.git -prune -o -type f | xargs grep "custom" -l

在这里插入图片描述


参考链接:

Linux 下查找文件

Linux查找某个目录下包含某个字段的文件

Linux-find命令-prune用法



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。