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