find命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了find命令相关的知识,希望对你有一定的参考价值。

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

根据文件名查找:
-name "pattern"    -iname "pattern"( 不区分大小写)   支持通配符 *, ?, [], [^]
技术分享
-regex pattern:基于正则表达式模式查找文件,匹配是整个路径,而非其名;

-user USERNAME:查找属主指定用户的所有文件; -group GRPNAME
-uid UID:查找属主指定的UID的所有文件;-gid GID
-nouser:查找没有属主的文件;-nogroup

技术分享

-type TYPE:f,d,l,b,c,p,s

技术分享
组合测试:
与:-a, 默认组合逻辑;   或:-o     非:-not, !
技术分享
练习:
1、找出/tmp目录下属主为非root的所有文件;

技术分享
2、找出/tmp目录下文件名中不包含fstab字符串的文件;

find /tmp/ -not -name "*fstab*"

-size [+|-]#UNIT   常用单位:k, M, G  (2k指的是1k到2k(1,2],+2k指的是大于2k,-2k指的是小于等于1k)技术分享

-atime [+|-]#   -mtime   -ctime  -amin   -mmin   -cmin  (用法与size相同) 


根据权限查找:
-perm [/|-]mode  mode:精确权限匹配。/mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足;

查找/etc目录下所有用户都没有写权限的文件;

技术分享
处理动作:
-print:标准输出;默认的动作;
-ls:类似于执行“ls -l”命令;
-delete:删除查找到的文件;
-fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;

技术分享
-ok COMMAND {} \\; :对查找到的每个文件以交互的方式执行由COMMAND命令;
-exec COMMAND {} \\; :对查找到的每个文件执行由COMMAND表示的命令;
技术分享
注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;
但是有些命令不能接受过长的参数,此时命令执行会失败;另一种方式可规避此问题:
find | xargs COMMAND


以上是关于find命令的主要内容,如果未能解决你的问题,请参考以下文章

find命令详解

Linux find 命令详解

find和grep命令

linux中find命令的使用详解

Linux命令(22)find的使用

Linux下的find命令