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命令的主要内容,如果未能解决你的问题,请参考以下文章