find查找命令的各种使用方法

find是文件查找工具,实时查找,速度慢,精确匹配

find命令基本使用格式

find [options] [查找路径] [查找条件] [处理动作]

查找路径:默认为当前目录

查找条件:默认为查找指定路径下的所有文件

处理动作:默认为显示

1、查找条件

-name "文件名称":支持使用globbing

*、?、[]、[^]

-iname "文件名称":查找时不区分字符大小写

-user UserName:根据属主查找

-group GroupName:根据属组查找

-uid UID:根据用户id查找

-gid GID:根据组id查找

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件

2、组合条件

-a:与,同时满足

-o:或

-not,!:非,取反

-type:根据文件类型查找

    f:普通文件

    d:目录

    b:块设备

    c:字符设备

    l:符号链接文件

    p:命令管道

    s:套接字

-size:根据文件大小查找

  -size [+|-] #Unit  (#-1)<x<=#

  例如:-szie +2MB

  常用单位:k,M,G

3、根据时间戳查找

  以天为单位(time):

-atime [+|-]#:

+表示(#+1)天之外被访问过

-表示#天之内被访问过

无符号:表示(#+1)>x>=#天的时间段被访问过

    -mtime [+|-]#

    -ctime [+|-]#

  以分钟为单位:

    -amin [+|-]#

-mmin [+|-]#

-cmin [+|-]#

4、根据权限查找

  -perm [+|-]MODE

  MODE:精确匹配

  +MODE:任何一类用户的任何一位权限匹配,常用户查找某类特定    权限是否存在

  -MODE:没类用户的任何一位都匹配

  文件权限是644

  -perm 600:否

  -perm +222:可以

  -perm +002:否

  -perm -444:可以

5、处理动作

  -print:打印在标准输出上

  -ls:以长格式输出个文件信息

  -exec COMMAND {} ; :对查找到的文件执行指定的命令

  -ok COMMAND {} ; : 交互式的exec

  find把查找到的所有文件一次性地传递给-exec所指定的命令

  # find -type f -exec mv {} {}.bak ;

  find | xargs COMMAND

  # find -type f | xargs ls -l

6、工作中的实际应用

名字为:reso000000055c80c920156220f187420d0402881e0391f602e0139c35b6f376a07S12的文件删除方法

# find . -name '*\*' -exec rm {} ;

名字为:reso000000057078f240157192492910840402881e031d6c5eb0131dc075cff03a3的目录的删除犯法

# find . -type d -a -name '*\*' -exec rm -rf {} ;

之查找当前目录,不进行递归查找的方法:

# find . ! -name "." -prune -name "*.html" 或者

# find  . -name "*html" -maxdepth 1 (此方法会有警告)

原文地址:https://www.cnblogs.com/fansik/p/5674125.html