Linux 中,一切皆文件,查找文件是必须要掌握的。
find 路径 -name 名字
// 查找/home 目录下所有以 .c 为后缀的文件 find /home -name "*.c" find 路径 -type 类型
find /root/study/c++/ -type d find 路径 -size 范围
find /root/ -size +0k -size -10k -n:n 天以内
+n: n 天以外
find 路径 -ctime -n/+n find /root -ctime -10 find /root -ctime +10 find 路径 -mtime -n/+n find 路径 -atime -n/+n 1)最大 n 层
find 路径 -maxdepth n
find ./ -maxdepth 2 2)最小 n 层
find 路径 -mindepth n
find 路径 查找方式及名字 -exec shell命令 {} ;
find 路径 查找方式及名字 -ok shell命令 {} ;
-ok 更安全,推荐使用
find ./ -name "*.cpp" -exce ls -s {} \; find ./ -name "*.cpp" -ok ls -s {} \; 有较多文件时,优先使用
find 路径 查找方式 | xargs shell命令
find ./ -name "*.cpp" | xargs ls -a grep 参数 “内容” 在哪个目录或文件查找
参数:
可以最后加上 -l(list),显示文件名,不显示具体的内容:
grep -r "chars" ./root -l 先找到文件:find
找到文件后,查找具体哪些文件,包括某个字符串:grep
也可能无法确认文件名,直接用 grep 在某个大目录下查找
find . 是一体的
| xargs 是一体的 , 管道
grep “内容” 是一体的
1) 查找出目录、文件
find . | xargs grep "charas" 
2)查找出文件,不找目录
find . type f | xargs grep "charas" 
3)查找文件以后,只列出文件名;不列具体内容
find . -type -f | xargs grep "chars" -l 
4)在以上查找的基础上,需要过滤掉一些文件夹
-prune -o -name
-prune -o -type 等
find . -path ./.git -prune -o -type f | xargs grep "custom" -l 
参考链接:
Linux 下查找文件
Linux查找某个目录下包含某个字段的文件
Linux-find命令-prune用法