linux中find命令详解

find命令 :

    特点: 查找速度慢,实时查找,精确查找

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

  • 查找路径:默认为当前目录
  • 查找条件:默认为查找所有文件

  • 处理动作:默认是输出到屏幕

查找条件:

  • 根据文件名字查找:

    • -name:后跟文件名称,根据文件名字查找。支持使用linux的通配符

    • -iname:同上,忽略大小写

    • -regex:后跟正则表达式,它会匹配整个文件路径,不仅仅是文件名

  • 根据属主,属组查找:

    • -user:后跟用户名,根据用户名查找文件

    • -group:后跟组名,根据组名查找文件

    • -uid:根据uid查找

    • -gid:根据gid查找

    • -nouser:不跟参数,查找属主为空的

    • -nogroup:查找属组为空的

  • 根据文件类型查找:

    • -type 文件类型:根据文件类型查找

      • f:普通文件

      • d:目录文件

      • l:符号链接文件

      • s:套接字文件

      • b:块设备文件

      • c:字符设备文件

      • p :管道文件

  • 组合查找:

    • -a:与

    • -o:或

    • -not或!:非

    • 例,find / \( -nouser -o -nogroup \) -ls,查找属组为空或属主为空的文件。

  • 根据文件大小查找:

    • 格式:-size [ + | - ] 大小

      • 大小=数字+单位

      • 单位有k,M,G

    • 数字+单位:查找的范围是:(数字-1,数字],find  /etc -size 3k,查找大于2k小于等于3k的文件

    • -:使用减号表示:[0,数字-1]。例,find  /etc -size -3k,查找所有小于等于2k的文件

    • +:加号表示(数字,oo)。例,find /etc -size -3k,查找所有大于3k的文件

  • 根据时间戳查找:

    • 以天为单位:a表示访问时间,m修改时间,c改变时间

      • -atime、-mtime、-ctime:也能配置+,-号使用,使用方法与根据文件大小查找类似

        • 例,find /etc -mtime -3,查找修改时间在3天以内的文件。

        • 例,find /etc -mtime 3,查找修改时间大于3天小于4天的文件。

        • 例,find /etc -mtime +3,查找修改时间大于4天的文件

    • 以分钟为单位:

      • -amin、-mmin、-cmin:同上

  • 根据文件权限查找:

    • 格式:-perm [ / | - ] 权限,以例子说明,centos7中+彻底过时,被 / 取代。

    • find /etc -perm 111:精确查找,查找权限为600的文件

    • find /etc -perm /111:查找任何一组满足权限条件的文件,类似或的关系。010也满足条件。

    • find /etc -perm -111:必须三组同时满足条件,类似与的关系。113满足条件。

处理动作:

  • -print:默认的处理动作,输出到屏幕

  • -ls:查看文件权限详情,相当于对查询出的文件右执行了"ls -l"命令

  • -delete:删除查找到的文件

  • -fls:后跟路径,将查询到的长文件信息输出到文件。即执行了-ls之后又把输出流重定向到了文件

你可能感兴趣的:(linux)