find工具主要用于查找系统文件、目录,语法格式如下:
find path -option [-print] [-exec -ok command] {} \;
path:查找的路径
-option说明:
-name filename:查找名为filename的文件
-type b|d|c|p|l|f:查找块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c]:查找长度为n块【或n字节】的文件
-perm:按执行权限查找
-user username:按文件属主查找
-prune:忽略某个目录
-matime (-|+)n:按文件更改时间来查找,-n指n天以内,+n指n天以前
-ctime (-|+)n:按文件创建时间来查找,-n指n天以内,+n指n天以前
-cmin (-|+)n:按文件创建时间来查找,-n指n分钟以内,+n指n分钟以前
-follow:如果遇到符号链接文件,就跟踪链接所指文件
示例:
查找home目录所有shell文件:find ~ -name "*.sh" #注意需要引号
查找home目录非目录文件:find ~ ! -type d
查找home目录下目录并修改权限为755:find ~ -type d|xargs chmod 755 -R
查找/var目录下文件大小大于10k的日志文件:sudo find /var/ -size +100k -name "*.log" -exec du -h {} \;
查找/data/目录下超过30天未修改的log文件: find /data/ -mtime +30 -name "*.log"
查找/data/目录下超过30天未修改的log文件并复制到/tmp/目录下: find /data/ -mtime +30 -name "*.log" -exec cp {} /tmp/ \;#\;前需要空白符