目录
Linux 中,一切皆文件,查找文件是必须要掌握的。
1. find : 按 文件名 正则表达式查找
1.1 按文件名
find 路径 -name 名字
// 查找/home 目录下所有以 .c 为后缀的文件
find /home -name"*.c"
1.2 按文件类型
find 路径 -type 类型
- 普通类型 f
- 目录 d
- 符号链接 l (link)
- 块设备文件 b
- 字符设备文件 c
- socket 文件 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-10find /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 ./ -maxdepth2
2)最小 n 层
find 路径 -mindepth n
1.6 高级查找:-exec,-ok,管道
1.6.1 -exce, -ok
find 路径 查找方式及名字 -exec shell命令 {} ;
find 路径 查找方式及名字 -ok shell命令 {} ;
-ok 更安全,推荐使用
find ./ -name"*.cpp"-excels-s{}\;find ./ -name"*.cpp"-okls-s{}\;
1.6.2 管道
有较多文件时,优先使用
find 路径 查找方式 | xargs shell命令
find ./ -name"*.cpp"|xargsls-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.|xargsgrep"charas"
2)查找出文件,不找目录
find.type f |xargsgrep"charas"
3)查找文件以后,只列出文件名;不列具体内容
find.-type-f|xargsgrep"chars"-l
4)在以上查找的基础上,需要过滤掉一些文件夹
-prune -o -name
-prune -o -type 等
find.-path ./.git -prune-o-type f |xargsgrep"custom"-l
参考链接:
Linux 下查找文件
Linux查找某个目录下包含某个字段的文件
Linux-find命令-prune用法
版权归原作者 sde09de 所有, 如有侵权,请联系我们删除。