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 *.py2、排除多个目录
find . -path "./other_back" -prune -o -path "./idc/bak/" -prune -o -path "./idc/tmp" -prune -o -ctime -3