find部分常用命令  

-print: find命令将匹配的文件输出到标准输出。

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。

-mtime   -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

-ctime    -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-atime    -n +n               #按文件访问时间来查

find    /   -amin    -10     # 查找在系统中最后10分钟访问的文件

find    /   -empty             # 查找在系统中为空的文件或者文件夹

-nogroup                     #查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存

-newer   f1 !f2               #查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f         #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size      n[c]               #查长度为n块[或n字节]的文件
-prune                       #忽略某个目录

示例:

find . -name XXX -exec mv {} /tmp \;   查找xxx并转移到/tmp

find   /XXX   -size   +512k                      查大于512k的文件

find   /XXX   -size   -512k                       查小于512k的文件

  

    在linux find 进行查找的时候,有时候需要忽略某些目录不查找,可以使用 -prun参数来进行过滤,但必须要注意要忽略的路径参数必须紧跟着搜索的路径之后,否则该参数无法起作用。

注意path如果是相对路径需要以 “./” 开头,并且匹配模式后不可以有 "/"
"-o" 表示逻辑或
整条语句理解为当prune执行为true时,那么就不再执行那么选项
1、排除单个目录

find . -path "./XXX" -prune -o  -type f -name *.py

2、排除多个目录

find . -path "./other_back" -prune -o  -path "./idc/bak/" -prune -o -path "./idc/tmp" -prune -o -ctime -3