find部分经常使用命令
linux
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。shell
-mtime -n +n #按文件更改时间来查找文件,-n指n天之内,+n指n天之前bash
-ctime -n +n #按文件建立时间来查找文件,-n指n天之内,+n指n天之前ide
-atime -n +n #按文件访问时间来查it
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹class
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
搜索
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号连接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-prune #忽略某个目录command
示例:im
find . -name XXX -exec mv {} /tmp \; 查找xxx并转移到/tmp
di
find /XXX -size +512k 查大于512k的文件
find /XXX -size -512k 查小于512k的文件
在linux find 进行查找的时候,有时候须要忽略某些目录不查找,可使用 -prun参数来进行过滤,但必需要注意要忽略的路径参数必须紧跟着搜索的路径以后,不然该参数没法起做用。
注意path若是是相对路径须要以 “./” 开头,而且匹配模式后不能够有 "/"
"-o" 表示逻辑或
整条语句理解为当prune执行为true时,那么就再也不执行那么选项
一、排除单个目录
find . -path "./XXX" -prune -o -type f -name *.py
二、排除多个目录
find . -path "./other_back" -prune -o -path "./idc/bak/" -prune -o -path "./idc/tmp" -prune -o -ctime -3