文件查找find命令

 

 

#!/bin/bash
find /etc -name '*.conf'
find /etc -iname "aa"   #不区分大小写
find . -user hdfs
find . -group yarn

find /etc -type f       #文件
find /etc -type d       #路径

find /etc -size +1M     #文件大小大于1M
find /etc -size -100k   #文件大小小于100k

find /etc -mtime -5 -name '*.conf'      #5天内修改的文件
find /etc -mtime +10 -user root         #10天前属主用户是root修改的文件

find /etc -mmin -10                     #10min内修改的文件
find /etc -mmin -10 -type d             #10min前修改过的路径

find /etc -mindepth 3   #/etc的三级子目录开始搜索
find /etc -maxdepth 3   #最多搜索n级子目录

find . -path ./test -prune -o -path ./test2 -prune -o -type f -a -size +500k     #查找当前路径下所有普通文件,并且文件大小大于500k,但排除 test1、test2路径下的文件

find /root/test -type f -exec rm -f {} \;
find /root/test -type f -exec cp {}  ./ \;

例1:搜索etc下的文件(非目录),文件名以conf结尾,且大于10k,然后将其删除
          find ./etc -type f -name '*.comf' -size +10k -exec rm -f {} \;
例2:将/var/log/目录下以log结尾的文件,且更改时间在7天以上的删除
          find /var/log -type f -name '*.log' -mtime +7 -exec rm -f {} \;
例3:搜索条件和例子1一样,只是不删除,而是将其复制到/root/conf目录下
          find ./etc -type f -name '*.conf' -size +10k -exec cp {} /root/conf \;

 

注:使用locate查找文件,立即生效需执行updatedb命令。