find命令是Linux下一个使用频率比较高的命令。常常用它在系统特定目录下,查找具有某种特征的文件。
find命令的格式:find [-path……] -options [-print -exec -ok]
path:要查找的目录路径。
~ 表示$HOME目录
. 表示当前目录
/ 表示根目录
print:表示将结果输出到标准输出。
exec:对匹配的文件执行该参数所给出的shell命令。
形式为command {} \;,注意{}与\;之间有空格 。
ok:与exec作用相同,
区别在于,在执行命令之前,都会给出提示,让用户确认是否执行。
对于当前目录,有如下文件:
直接执行find命令,输出当前目录下所以文件
options常用的选项有:
-name :按文件名查找
例:find . -name ‘[a-z]*.c’ -print:当前查找小写字母开头的.c文件
-perm:按权限查找
每个文件都有它的权限,如test.c文件的user权限为可读、可写、可执行,二进制位为111,即十进制的7,所属组权限和other权限一样为7,
所以test.c文件的权限为777.
-prune:不在当前指定的目录下查找
如图,该命令表示在当前目录下除子目录test以外的子目录下查找.c
类型文件。
-type:按照文件类型查找
-user:按文件属主查找
-group:按文件所属组来查找
-nouser:查找被属主删除的文件
按时间查找
. -mtime -2 :按时间查找两天内被修改过的文件
. -mtime +2 :按时间查找两天前被修改过的文件
. -ctime -1 : 查找一天内状态被改变的文件
. -ctime +1: 查找一天前状态被改变的文件
按文件新旧比较查找
-newer 查找比“ ”更新的文件
! -newer查找比“ ”更旧的文件
按文件大小查找
-size +1M : 查找超过1M的文件
-size 6c : 查找等于6字节的文件
-size -32k : 查找小于32k的文件