Linux,对find命令的阐述 ERIKXUE

今天给大家带来的是常用而且功能异常强大的文件查找命令       -----find




一、常用的文本查找命令

grep、egrep命令

        grep:文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,先是能够被模式匹配到的行。后面跟正则表达式,让grep工具相当强大。-E之后还支持扩展的正则表达式。

# grep  [options]  'PATTERN'  file ...

          --color=auto:高亮显示被匹配的关键字

          -v:反向

          -o:仅显示被模式匹配的字串,而非整行

          - i:不区分大小写

          -E:支持扩展的正则表达式

          -A+n:仅显示被匹配到的行和其上n行

          -B+n:仅显示被匹配到的行和其下n行

          -C+n:仅显示被匹配到的行和其上、下n行

# egrep  [options]  'PATTERN'  file ...

          选项和grep相同,egrep=grep -E  ,这里不再继续说明。

locate命令

        locate:其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

find命令

      find:实时查找,精确匹配,速度略慢

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

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

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

                        处理动作:显示在标准输出上

二、find命令详解

(一)、查找条件

              -name  "文件名称":支持文件名通配

              -iname "文件名称":支持文件名通配,不区分大小写

              -user  "用户名":根据属主查找

              -group  "组名":根据属组查找

              -uid    "UID":根据UID查找

              -gid    "GID":根据GID查找

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

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

                ◆当一个用户被删除,那么该用户的文件就会变成没有属主或属组的文件

(二)、组合条件

              -a:和与相同,同时满足

              -o:与或相同,满足其一皆可

              -not、!:与非相同,取反

              -type:根据文件类型查找

                      f:普通文件

                      d:目录

                      b:块设备

                      c:字符设备

                      l:符号链接文件

                      p:命令管道工具

                      s:套接字文件

根据文件大小查找

                  -size  [+|-]单位

                      +2M:大于2M的

                       -2M:小于1M的

                        2M:1.1~2M的

                      常用单位:k、M、G

                  例:大于2M的  

                      # find -size +2M

根据时间戳查找

以天为单位(tim

                          -atime   [+|-]n:被访问的n天

                          -mtime  [+|-]n:被修改的n天

                          -ctime   [+|-]n:被创建的n天

                              +2:大于3天的

                              - 2:小于2天的

                                2:2天到3天的

以分钟为单位(min)

                          -amin   [+|-]n:被访问的n分钟

                          -mmin  [+|-]n:被修改的n分钟

                          -cmin    [+|-]n:被创建的n分钟

                              +2:大于3分钟

         -2:小于2分钟

                  2:2分钟到3分钟

根据权限查找

-perm  [+|-]权限

                 MODE:精确匹配

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

                 -MODE:每类用户的任何一位都匹配,每类用户的指定要检查的权限都匹配

(三)、处理动作

          -print:打印在标准输出上

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

          -exec COMMAND\:对查找的文件执行制定的命令

          -ok COMMAND\:交互式的-exec

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

          如果查到到的是多个文件要加{},{}是占位符,表示接受前面find查找的文件,并对文件依次执行动作

格式: find -exec {} \;

                   例:# find -iname *.sh -exec chmod a-x {} \;  

xargs命令

find|xargs COMMAND 一次性接受一批文件,通过管道直接修改

                  例:# find -iname text.sh | xargs chmod a+x  


你可能感兴趣的:(linux,File,用户,表达式,而且)