find用法

来源:互联网 发布:第一学历 知乎 编辑:程序博客网 时间:2024/04/19 01:12

find . -name "jia" -o -wholename './files' -prune
在当前目录及除./files的其他子目录下查找名为jia的文件,并输出文件的路径,注意输出会多了个./files

递归查找文件内的字符串

find . -name "*.h" -exec grep "sockaddr_in" {} \; -print

这条命令将查找所有包含 sockaddr_in 的 .h 文件. 返回的结果出现sockaddr_in的行的内容,然后是文件名。蓝色部分表示对找到的文件进行操作的命令。{}符号展开成前面find命令找到的文件名。\;符号表示-exec选项中命令的结束。

上面的语句也可以这样实现:

find . -name "*.h" | xargs -i grep "sockaddr_in" {}

另外的例子:

显示/etc/rc.d下文件名含"crond"的文件的类型

find /etc/rc.d -name ’*crond’ -exec file {} \;

查看含有pthread串的文件名,只用grep实现:
grep “pthread” -l


搜索并替换文件里的内容

sed -i ’s/b/strong/g’ index.html

此命令搜索 index.html 文件中的 b 并将其替换为 strong。


-atime -n 即access time,过去的n+1小时内访问过的文件

-amin -n 即access minute,过去的n分钟内访问过的文件

-mtime -n 即modify time,过去n+1小时内改过的文件

-mmin -n 即modify time,过去n分钟内改过的文件(dong? -mmin和-cmin的区别是?)

find / -amin -10 # 查找在系统中过去10分钟访问的文件
find / -atime -2 # 查找在系统中过去72小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中过去5分钟里修改过的文件
find / -mtime -1 #查找在系统中过去48小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件

find /tmp -size +1000c -and -mtime -2 #在/tmp目录下查找72小时内大于1000B的文件(c代表字节,k表示KB,M表MB,G表GB)