• 每天一个Linux命令(1): find


    1 find 命令是用来查找制定目录下符合条件的文件执行相应的动作(print exec等)

    find [path...] [expression]

    • path:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
    • expression:expression可以分为——“-options [-print -exec -ok ...]”
    • -options,指定find命令的常用选项,下节详细介绍
    • -print,find命令将匹配的文件输出到标准输出
    • -exec,find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } ;,注意{   }和;之间的空格 例如: find ./ -size 0 -exec rm {} ; 删除文件大小为零的文件 (还可以以这样做:rm -i `find ./ -size 0`  或 find ./ -size 0 | xargs rm -f &)

    -options 包括

      • -name 
        按照文件名查找文件。 
        find /dir -name filename  在/dir目录及其子目录下面查找名字为filename的文件 
        find . -name "*.c" 在当前目录及其子目录(用“.”表示)中查找任何扩展名为“c”的文件
      • -perm 
        按照文件权限来查找文件。 
        find . -perm 755 –print 在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件
      • -prune 
        使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。 
        find /apps -path "/apps/bin" -prune -o –print 在/apps目录下查找文件,但不希望在/apps/bin目录下查找 
        find /usr/sam -path "/usr/sam/dir1" -prune -o –print 在/usr/sam目录下查找不在dir1子目录之内的所有文件
      • -user 
        按照文件属主来查找文件。 
        find ~ -user sam –print 在$HOME目录中查找文件属主为sam的文件
      • -group 
        按照文件所属的组来查找文件。 
        find /apps -group gem –print 在/apps目录下查找属于gem用户组的文件 
      • -mtime -n +n 
        按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。 
        find / -mtime -5 –print 在系统根目录下查找更改时间在5日以内的文件 
        find /var/adm -mtime +3 –print 在/var/adm目录下查找更改时间在3日以前的文件
      • -nogroup 
        查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。 
        find / –nogroup -print
      • -nouser 
        查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。 
        find /home -nouser –print
      • -newer file1 ! file2 
        查找更改时间比文件file1新但比文件file2旧的文件。
      • -type 
        查找某一类型的文件,诸如: 
        b - 块设备文件。 
        d - 目录。 
        c - 字符设备文件。 
        p - 管道文件。 
        l - 符号链接文件。 
        f - 普通文件。 
        find /etc -type d –print 在/etc目录下查找所有的目录 
        find . ! -type d –print 在当前目录下查找除目录以外的所有类型的文件 
        find /etc -type l –print 在/etc目录下查找所有的符号链接文件
      • -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。 
        find . -size +1000000c –print 在当前目录下查找文件长度大于1 M字节的文件 
        find /home/apache -size 100c –print 在/home/apache目录下查找文件长度恰好为100字节的文件 
        find . -size +10 –print 在当前目录下查找长度超过10块的文件(一块等于512字节)
      • -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。 
        find / -name "CON.FILE" -depth –print 它将首先匹配所有的文件然后再进入子目录中查找 
      • -mount:在查找文件时不跨越文件系统mount点。  
        find . -name "*.XC" -mount –print 从当前目录开始查找位于本文件系统中文件名以XC结尾的文件(不进入其他文件系统)
      • -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
  • 相关阅读:
    NSString+URLEncoding
    编码解码
    RESTful架构理解
    jvm调优
    java大数据处理调优
    SQL 优化
    正确处理下载文件时HTTP头的编码问题(Content-Disposition)
    Spring 多媒体(文件上传)支持
    mybatis类型转换
    log4j Spring aop 注解的日志管理
  • 原文地址:https://www.cnblogs.com/yxzfscg/p/4896300.html
Copyright © 2020-2023  润新知