Linux-find用法

find

格式: find [OPTION] .... [查找路径] [查找条件] [处理动作]

查找路径:可以指定具体的路径,默认是当前路径

查找条件:用来指定文件查找的标准,可以是文件名、大小、权限、类型等等

处理动作:对符合条件的文件进行的操作,默认是直接输出到屏幕上

查找条件

按照名称来搜索:

可以结合文件通配符进行使用

  • name :

    find -name a 完全匹配
    
    find -name "a*" 所有的以a开头的文件或者文件夹
    
    find -name "a?" 所有以a开头后面为一个字母的文件或者文件夹
    
    find -name "a[ab]" 以a开头后面是a或者b的文件或者文件夹
    
    
  • iname 忽略大小写

    find -iname a
    

按照搜索层级

  • -maxdepth level 指定最大的搜索层数,指定的目录为第一层

    find -maxdepth 2 -name a
    
  • -mindepth level 指定最小的搜索层数

    find -mindepth 2 -name a
    

按照文件的类型来查找

  • -type type
    • f 文件
    • d 目录
    • l 链接
    • s socket套接字
    • b 块设备
    • c 字符设备文件
    • p 管道文件
find -type f -name a 搜索文件
find -type d -name a 搜索目录
find -type l -name a 搜索软链接

空文件和空目录

  • -empty

    find -empty
    find -empty -type d
    

根据属组,属主来搜索

  • -user username 查找属主是username的文件或者文件夹

  • -group groupname 查找属组是groupname的文件或者文件夹

  • -uid uid 查找uid为uid的文件或者文件夹

  • -gid gid 查找gid为gid的文件或者文件夹

  • -nouser 查找没有属主的文件或者文件夹

  • -nogroup 查找没有属组的文件或者文件夹

find -user jiangyi
chmod :xiaofeng jiangyi
chown :xiaofeng jiangy
find -group xiaofenf
find -group xiaofeng
find -uid 1000 
find -gid 1000 
find -gid 1001
find  -nouser
find -nogroup 

组合条件

  • 与 -a
  • 或 -o
  • 非 -not !
  • 摩根定律
    • (非A)或(非B)=非(A且B)
    • (非A)且(非B)=非(A或B)
find -not -user wupeiqi -a -not -user xiaofeng -ls|wc -l
find -not \( -user wupeiqi -o -user xiaofeng \) -ls|wc -l

排除目录

  • -path
find /etc/ -path /etc/ssh -name *_config

文件大小来搜索

  • -size[+|-] unit 常用单位:k,M,G,c(byte)

    • #unit:(#-1,#] 不包括#-1,但是包括#

    • -#:[0,#-1],从0到#-1

    • +#:(#,......) 不包括#

文件时间戳

  • 以“天"为单位

    • atime:[+|-] day

      • time [#,#+1)包括#,但是不包括#+1

      • +time:[#+1,.....]

      • -time:[0,#)

    • mtime

    • ctime

  • 以“分钟”为单位

    • -amin
    • -mmin
    • -cmin

根据权限来搜索

  • -perm 权限
find -perm 644  -ls
find -perm 777  -ls

处理动作

  • -print 把搜索到的结果直接打印到屏幕上,默认的

  • -ls 相当于执行ls -l 命令

  • -delete 删除查找的文件

  • -fls filename 将查找结果写入文件中

  • -ok command {} \;对查找的文件执行command命令,但是每一次都需要用户确认

  • -exec command {} ; 对查找到的文件执行command命令,不需要用户确认

    • {} 表示查找到的文件
    • find 传递的时候 是一次性传递的

Linux-find用法

上一篇:Linux


下一篇:SHELL脚本自动备份