linux的find命令详解

find命令是用来给指定目录下查找符合给定条件的文件

语句 find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

一、OPTIONS参数

-P、-L、-H 控制软连接的对待方式,用的不多可以忽略

二、查找起始路径

就是查找文件的目录路径,可以使用相对和绝对

三、查找条件

查找条件有很多,我其实也只用一些常用的命令

1、按照名称查找:

1)-name"PATERN"

2)-iname"PATERN" 忽略字符大小写

3)-regex PATTERN:基于正则表达式的模式查找,匹配的是整个路径,而非单个文件名。

2、根据文件从属关系查找:

1)-user  USERNAME:查找指定用户的文件

2)-group GRPNAME:查找指定组的文件

3)-uid UID:查找指定的UID的文件

3)-gid GID:查找指定的GID的文件

3、根据文件的类型查找:

-type 更具不同的文件类型筛选

    1) f:普通文件

    2)d:目录文件

    3)l:符合链接文件

    4)d:块设备文件

    5)c:字符设备文件

    6)p:管道文件

    7)s:套接字文件

4、根据文件的大小查找

-size -size [+|-]#UNIT

常用单位:k, M, G

#UNIT:(#-1, #] 、 -#UNIT:[0,#-1]  、 +#UNIT:(#, oo)

5、根据时间戳查找:(这个我用的也不是很多)

1)atime(文件的最后访问时间)

2)mtime(文件的最后修改时间)

3)ctime(文件最后改变时间)三个变量来查询

6、根据权限查找:

-perm

1)mode:精确权限匹配;

2)/mode: 只要有一组用户匹配到一个权限即可。(就是属主拥有给定属主权限的某一个,或者数组拥有给定权限的某一个,或者其他用户拥有给定权限的某一个即可。)

3)-mode。并且的关系。(就是给定的属主权限必须拥有。并且给定的数组权限必须拥有。并且给定的其他用户权限必须拥有。)

四、处理动作

-print:输出至标准输出;默认的动作;

-ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息;

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

-fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;

-ok COMMAND {} \; :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;

-exec COMMAND {} \; :对查找到的每个文件执行由COMMAND表示的命令;

注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;

但是有些命令不能接受过长的参数,此时命令执行会失败;另一种方式可规避此问题:find | xargs COMMAND


你可能感兴趣的:(linux的find命令详解)