find 搜索命令
(1)①通配符:是完全匹配,用于匹配文件名。
* 匹配任意内容
? 匹配任意一个字符
[ ] 匹配中括号内任意一个字符
[abc] [0-9] [A-Z] [A-Za-z]
任意一个 任一数字 任意英文字母
②正则表达式:是包含匹配,用于匹配文件中的字符串。
* :*前一个字符重复0次到任意多次
? :?前一个字符重复0次到1次
[] :匹配中括号内任意一个字符
grep “2*” abc 2*没有意义
grep “22*” abc 22*表示至少有一个2或多个2
grep ”^123$” abc 只显示“123”,不显示其他
行首加^ 行尾加$
③find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。
(2)按照文件名查找
find 查找位置 -name 文件名
find / -name aa
(3)按照时间查找
-ctime 按照文件状态(权限)修改时间 change
-mtime 按照文件数据修改时间 modify
-atime 按照访问时间 access
find / -ctime +4 查找4天以内的文件
-4 查找4天以前的文件 4 查找第4天的文件
(4)按照用户查找文件
-uid 数字 按照所有者ID查找文件
-gid 数字 按照所属组ID查找文件
-user 用户名 按照用户名查找文件
-group 组名 按照组名查找文件
-nouser 查找没有属主的文件
find / -nouser 主要用于查找垃圾文件
(5)按照文件权限查找文件
. -name : 按照文件名查找文件
. -size : 按照文件大小查找文件(+50K:>50K ; -50K:<50K; 50K=50K)
. -type :类型 f:普通文件 d:目录文件 l:链接文件
. -perm :按照权限查找 find . -perm 644
. -inum :按照inode查找文件
ls -i可用来搜索硬链接
find . -inum+节点数
. -iname :按照文件名查找,不区分大小写
(6)在查找出的结果中,直接进行命令操作。
①命令1(-exec前)的执行结果作为命令2(-exec后)的操作对象
-exec \;
find /var/logs/ -mtime +10 -exec rm -rf {}\;
用于批量删除
find . -inum 1140247 -exec ls -l {}\;
find . -size +5K -a -6K
②-ok和 -exec一致,只是在执行 -ok包含的命令时,会提示用户是否执行。
在删除文件时用-OK
③ -a and 同时执行 逻辑与
-o or 有一就执行 逻辑或
-! find . ! -type f 逻辑非