find命令用来寻找文件或目录,功能非常强大,可以在查找到的文件上去执行命令,准确查找,遍历整个目录下的所有文件,可以对查询到的文件进行指定的动作,即查看、删除、移动等操作。
目录
1、常用查找命令
先给大家列举一下查找常用命令
-name | 以文件名查找 |
-iname | 以文件名查找不区分大小写 |
-user | 以用户名查找 |
-group | 以组名查找 |
-nouser | 查找没有属主的文件 |
-nogroup | 查找没有属主的文件 |
-uid | 以uid查找 |
-gid | 以gid查找 |
-perm | 根据权限查找 |
-size | 根据文件大小查找 |
-type | 以文件类型查找 |
2、查找结果后的处理
find命令将匹配的文件输出到标注输出 | |
-exec | 对匹配的文件执行该参数所给出的shell命令。相应命令的形式为 'command' { } \;,注意{ }和\;之间的空格 |
-ok | 和-exec差不多,以一个更为安全的模式来执行shell命令 |
3、按照文件名搜索查找
搜索当前目录下名为passwd的文件
find -name passwd
搜索/etc目录下名为httpd.conf的文件,并显示结果
find /etc -name xattr.conf
以忽略大小写形式搜索当前目录下名为passwd的文件
find -iname passwd
4、按照用户和组名搜索查找
查找/opt目录下属主和属组都是lmy的文件(和的关系)
find /opt/ -user lmy -group lmy
查找/opt目录下属主或属组都是lmy的文件(或的关系)
find /opt/ -user lmy -o -group lmy
查找/opt 目录下属主为lmy但属组不是lmy的文件(与的关系)
find /opt -user lmy -not -group lmy
5、搜索查找没有属主和属组的文件
刚刚用userdel -r lmy把lmy用户给删掉了,这样直接属组和属主是lmy的都没有属组和属主了。
find /opt -nouser
find /opt -nogroup
6、根据权限搜索查找文件
-perm XXX | 精确权限查找 |
-perm /XXX | 只要符合任何一个要求就行 |
-perm -XXX | 每一类用户的每一位同时符合条件 |
查找当前目录下属权限等于755的文件
find -perm 775
查找管理员、用户、其它人都有写权限的文件
find -perm /222
查找当前目录下其它用户有写的权限的文件
find -perm -002
7、根据用户的UID、GID搜索查找文件
查找/opt 目录下用户id为1002的文件
find -uid 1002
8、根据文件大小查找文件
以文件大小查询,大小包括K,M,G的单位
查询大小小于5M的文件
find -size -5M
查询大小大于1G的文件
find -size +1G
9、根据文件类型查找文件
在/opt 目录下查找文件和目录
find /opt -type f
find /opt -type d
10、查找后处理的结果
查找所有用户没有属主和属组的文件并复制到/tmp/testdir目录下
find -nouser -exec cp -pr {} /tmp/testdir \;
查找etc目录下所有的conf文件并且全部备份.bkup后缀并将所有的.back后缀的文件移动到/tmp/bkup目录下
find /etc -name *.conf -exec cp {} {}.nkup \; //备份
find /etc/ -name *.bkup -exec mv {} {} /tmp/bkup/ |;
在/opt目录下查找五天内的文件并删除,-ok能安全的删除,由你确认一遍
find -type f -mtime -5 -ok rm {} \;
查当前目录下的文件权限为644的并更改为755
find -type f -perm 644 -ok chmod 755 {} \;
来源地址:https://blog.csdn.net/weixin_51338719/article/details/128416718