Linux中find基础用法

  • Post author:
  • Post category:linux


find简述:实时查找工具,可以遍历指定的起始路径下面的所有文件实现查找。

特性:1.速度略慢。

2. 精确查找

3.实时查找

find语法格式:

find [选项] [查找的起始路径] [查找条件][处理动作]

1.查找路径:具体的路径(默认为当前路径)

2.查找条件:可根据(文件的大小,类型,从属关系,权限等)进行查找,无条件时,默认当前路径下的所有文件。

3.处理动作:就是对查找到的文件进行的操作,删除等。

这里主要说一下查找的条件和处理动作:

1.查找的条件由选项和测试组成

测试有以下几类:

(1)根据文件名字查找:

-name  “pattern”   这里支持glob风格的通配符;

-name “pattern”   忽略文件名的大小写;

-regex “pattern”  给予正则表达式查找文件,匹配的是整个路径(不常用)

(2)根据文件的从属关系查找:

-user  用户名 :查找属主为指定用户的所有文件

-group  组名  : 查找属组为指定组的所有文件

-gid      GID :查找属主为GID的所有文件

-uid      UID:查找属组为UID的所有文件

-nouser :查无属主文件

-nogroup  :查无属组文件

(3)根据文件类型查找:-type TYPE

f :常规文件                                      c:字符设备文件

d :目录文件                                      l:符号链接文件

b :块字节文件                                 p:命名管道

s:套接字文件

(4)根据文件大小:-size  [+/-] #(数字) [单位](k,M,G)

#:(#-1,#]   (文件大小大于#-1小于等于#)

-#:[0,#-1)

+#:(#,∞)


(5)根据时间戳:

天为单位

-atime [+/-] #(数字) [单位]       atime 最近访问时间

-mtime [+/-] #(数字) [单位]       mtime 最近更改数据的时间

-ctime  [+/-] #(数字) [单位]       ctime 最近改动数据或元数据的时间

+#:大于#天

-#:小于等于#天

#:大于#-1天小于等于#天

分钟为单位

-amin[+/-] #(数字) [单位]      最近访问时间

-mmin [+/-] #(数字) [单位]      最近更改数据的时间

-cmin  [+/-] #(数字) [单位]       最近改动数据或元数据的时间

(6)根据权限查找文件

-perm  [/|+] mode(三位八进制)

mode:精确匹配权限

/mode: ugo 三个用户中各自的rwx有一个满足条件即可

-mode:ugo的三个用户中各自的rwx都必须满足条件即可

对以上六个条件可以进行组合:

-a :相当于与运算,条件都要成立

-o : 相当于或运算,条件有一个成立即可

摩根定律:        非a   -a    非b  =    非(a  -o    b)

非a   -o    非b  =    非(a   -a    b)

例题一 查找/usr目录下不属于root,bin,hadoop的所有文件及目录;

例题二 查找/etc目录下所有用户没有写权限的文件

对于处理动作这里简单说一下:

-print  :为默认的输出,可不写

-ls   :与ls -l 相似   输出文件的详细信息

-delete : 删除

-fls  路径/文件:将找到的文件以长格式保存在指定的文件中

-ok    COMMAND  {}   \;对查到的文件执行COMMAND命令,缺点每次到要确认文件

-exec  COMMAND {}  \;对查到的文件执行COMMAND命令,不用每次都确认文件



版权声明:本文为m0_69160371原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。