Linux中使用命令查找文件

find命令

查找绝对路径下的文件名或者目录名

find /etc - name XX //绝对文件名或者目录名
find /etc -iname XX //不区分大小写的文件名或者目录名查找

通配符查找

find /etc/ -name '*XX*' //*通配任意的字符
find /etc/ -name 'XX?'  //?通配一个字符
find /etc/ -name '[XX].sh' //[通配里面的任意一个字符]
find /etc/ -name XX -user  //通过所属用户和组来查找文件
find /etc/ -name XX -group //通过所属用户和组来查找文件
find  /tmp  -uid  uid  //查找uid是500 的文件
find  /tmp  -gid  500  //查找gid是500 的文件
find /tmp /etc -name XX //多个路径一起查找
find /tmp -name 'XX.sh' -a -user root //使用-a连接两个&&的条件
find /tmp -name 'XX.sh' -o -user root //使用-o连接两个||条件的
find /tmp -not -user root //使用-not取反条件

通过时间戳维度查找文件

stat /etc/tmp 

 #-atime //最近一次访问时间
 #-mtime //最近一次内容修改时间
 #-ctime //最近一次属性修改时间
 #-amin  //单位是天
 #-mmin  //单位是分钟
 #-cmin  //单位是秒

find / -name '*.xml' -a -amin -30  //表示查找在30分钟内访问过的文件
find / -name '*.xml' -a -atime +5  //标示查找在5天以外访问过得文件

通过文件类型来查找文件

-type
   -f //普通文件
   -d //目录文件
   -l //链接文件
   -b //块设备文件
   -c //字符设备文件
   -p //管道文件
   -s //socket文件
 find /tmp -type s  //查找socket文件

通过文件大小来查找

-size
find  /tmp  -size   2M  //大小为2M的文件
find  /tmp  -size  +2M           //查找在/tmp 目录下大于2M的文件
find  /tmp  -size  -2M           //查找在/tmp 目录下小于2M的文件

根据文件权限查找文件

-perm
find  /tmp  -perm  755    //查找在/tmp目录下权限是755的文件
find  /tmp  -perm  +222   //表示只要有一类用户(属主,属组,其他)的匹配写权限就行
find  /tmp  -perm  -222     //表示必须所有类别用户都满足有写权限

find命令后的约束行为

find /tmp -perm 755 -ls  //查找到后用ls 显示出来
find /tmp -perm  755 -ok  //查找后执行命令的时候询问用户是否要执行
find /tmp -name '*.sh' -exec chmod u+x {} \; //查找后执行命令的时候不询问用户,直接执行'{}'这里表示查找到的文件

一些小技巧实际中的使用

find  /tmp  -name  '*.imi' |xargs chmod 700; 
find  /tmp  -atime  +30  –exec rm –rf  {} \; //删除查找到的超过30天没有访问过文件

相关推荐