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
本文出自 “World” 博客,请务必保留此出处http://xiajie.blog.51cto.com/6044823/1683311
原文地址:http://xiajie.blog.51cto.com/6044823/1683311