博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

find命令

Posted on 2015-10-26 14:26  徐正柱-  阅读(274)  评论(0编辑  收藏  举报

Unix/Linux使用Find命令查找文件

[root@TEST144239 ~]# find --help

  用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

  默认路径为当前目录;默认表达式为 -print

  表达式可能由下列成份组成:操作符、选项、测试表达式以及动作:

  • 操作符 (优先级递减;未做任何指定时默认使用 -and):

      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2

      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2

  • 位置选项 (总是真): -daystart -follow -regextype
  • 普通选项 (总是真,在其它表达式前指定):

      -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf

      --version -xdev -ignore_readdir_race -noignore_readdir_race

  • 比较测试 (N 可以是 +N 或 -N 或 N):

   -amin N -anewer FILE -atime N -cmin N

      -cnewer 文件 -ctime N -empty -false -fstype 类型 -gid N -group 名称

      -ilname 匹配模式 -iname 匹配模式 -inum N -ipath 匹配模式 -iregex 匹配模式

      -links N -lname 匹配模式 -mmin N -mtime N -name 匹配模式 -newer 文件

      -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN

      -readable -writable -executable

      -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N

      -used N -user NAME -xtype [bcdpfls]

      -context CONTEXT

  actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print

        -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit

        -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;

        -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;

 

  寻找空的目录:                        find /path -depth -type d -empty
  寻找空文件:                        find /path -depth -type f -empty
  根据名字查找文件:              find /path -name name_of_file
  根据扩展名查找文件:           find /path -name “*.given_extension”
  寻找具有特定权限且特定扩展名的文件:   find /path -name ‘*.txt’ -perm 644
  根据文件具有的权限属性来寻找文件:    find /path -perm -permision_bits
  不知道扩展名,只使用文件名来寻找文件:  find /path -name ‘given_name.*’
  寻找在24小时内修改过的文件:        find /path -mtime n   这里的n,0表示24小时,1表示48小时,2表示72小时。下面的n也一样。
  查找最近24小时内存取过的文件:           find -atime n
  根据所有者查找文件:               find /path -user root
  查找并删除文件:                            find /path -name mytestfile | xargs rm