首页 > 其他分享 >find

find

时间:2022-10-11 08:56:06浏览次数:37  
标签:log name 查找 type find size

1、语法格式

find  路径  -参数  动作       参数:最核心的,参数众多 其option常用参数详解如下:
-name   filename                        #查找名为filename的文件;
-type    b/d/c/p/l/f                    #查是块设备、目录、字符设备、管道、符号链接、普通文件;
-size      n[c]                      #查长度为n块[或n字节]的文件;
-perm                                   #按执行权限来查找;
-user    username                       #按文件属主来查找;
-group   groupname                   #按组来查找;
-mtime    -n +n                         #按文件更改时间来查找文件,-n指n天以内,+n指n天以前;
-atime    -n +n                              #按文件访问时间来查找文件;
-ctime    -n +n                        #按文件创建时间来查找文件;
-mmin     -n +n                            #按文件更改时间来查找文件,-n指n分钟以内,+n指n分钟以前;
-amin     -n +n                              #按文件访问时间来查找文件;
-cmin     -n +n                              #按文件创建时间来查找文件;
-maxdepth                                      #查找目录级别深度。

-name  名称

find . –name “jf*”

-type  类型

find .-name “jf*” –type f  #查找文件 find .-name “jf*” –type d  #查找目录

组合查找:

find .-name “jf*” –type f  -name jf1.txt  #只找jf1.txt find .-name “jf*” –type f ! -name jf1.txt  #除了jf1.txt

-size 文件大小

      M: 以MB为单位
      K:以KB为单位
find . -name “*.tar.gz” -size +200M  #大于200M
find . -name “*.tar.gz” -size 200M  #等于200M
find . -name “*.tar.gz” -size -200M  #小于200M
find . -name “*.tar.gz” -size -200M -size +100M #100M-200M 之间
find . -name “*.tar.gz” -size -200M -size +100M  -type f #文件
find . -name “*.tar.gz” -size -200M -size +100M  -type d #目录

-perm  文件权限

find . –type f –perm 755  #目录权限755,

umask :默认是022

      目录默认是777:创建目录-umask 777-022 = 755       文件默认是666:创建文件-umask  666-022 = 644

-user   根据属主查找

-group  根据属组查找

find . –user  nginx find . –group  nginx

stat文件属性查看命令

-mtime    -n +n                         #按文件更改时间来查找文件,-n指n天以内,+n指n天以前;

查找30天前被修改过的文件:

find . –mtime  +30   #默认为d天数 改变文件时间:touch  文件名

示例:删除30天前的日志

查找log结尾,排除access.log,error.log,3天前修改过,大于20M find . –name “*.log” ! –name access.log  ! –name error.log –mtime +3 –size +20M 如何删除以上结果: 测试 for i  in $( find . –name “*.log” ! –name access.log  ! –name error.log –mtime +3 –size +20M);do echo $i ; done 执行删除: for i  in $( find . –name “*.log” ! –name access.log  ! –name error.log –mtime +3 –size +20M);do rm –rf $i ; done 其他方法:

-exec 命令  -参数  {} \;

      -exec :类似 | ,与find组合
      命令 –参数:rm  -rf ,参考各命令使用,如使用cp则为:
           -exec cp {}  /tmp/ \;   #{}表示要操作的文件
      {}    :表示find 的结果,里面不能写内容
      \;  :结束符
例:查找当前目录文件,然后复制到/tmp/1目录下
find . -type f -name "OpenIPMI*" -exec cp {}  /tmp/1/ \;
前面是查找结果,后面是操作动作。

示例2:网站发布目录被黑了,权限全是777,怎么恢复

要点:目录权限 755  文件权限 644 
目录:\.  排除.  \表示转义
find .-type d ! –anme \.  –exec  chmod 755 –R {} \;
文件
find .-type f ! –anme \.  –exec  chmod 644 –R {} \;
-maxdepth                                      #查找目录级别深度。
只查找当前目录的文件夹
find . –maxdepth 1 –type d ! –name \.
       –maxdepth 1  :要写在.号后面,1表示一层
排除隐藏目录
find . –maxdepth 1 –type d ! –name \. ! –name “.*”
需求升级:要求创建以find 查找出来的结果为目录名
find . –maxdepth 1 –type d ! –name \. ! –name “.*” –exec  mkdir –p /tmp/{} \;
xargs 使用方法
find  .  -name  “*.txt” -type d |xargs rm  -rf  
复制文件:
find  .  -name  “*.txt” -type f |xargs -I {}  cp {} /tmp/
       |xargs –I  {}  表示把find 的结果暂存在{} 里
  总结:-exec  与 |xargs区别        -exec 是一条一条执行        |xargs 是把所有结果存到内存中,统一操作,生产环境文件过多不建议使用。   查找第一级目录,并以目录名在其他位置批量创建 find . -maxdepth 1 -type d ! -name \.  -exec mkdir -p /tmp/{} \;    

 

 

标签:log,name,查找,type,find,size
From: https://www.cnblogs.com/csxy-py/p/16778042.html

相关文章