学习笔记-find命令

文件查找

locate: 依赖数据库。非实时查找,结果非精确,查找速度快,模糊查找
find:实时查找,速度慢,精确查找

find [options] [查找路径] [查找条件][处理动作]
查找路径:默认当前路径
查找条件:默认查找指定路径下的所有文件
处理动作:默认显示
查找条件:

-name:"文件名称":区分大小写。支持使用globbing
* ? [] [^]
-iname:"文件名":不区分大小写

-user UserName:根据属主查找
-group GroupName:跟住属组查找

-uid UID:根据uid查找
-gid GID:根据gid查找

-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件

组合条件:在要要查找的选项前面加

 -a:与。同时满足,可省略
 -o:或,一个满足
 -not,!非。取反
 非A,并且非B:非(A或B)
 -not( -user kayshi -o iname ”*.txt“)
 非A,或 非B:非(A且B)

-type:根据文件类型查找

f:普通文件
d:目录
b:块设备
c:字符设备
l:符号链接文件
p:命令管道
s:套接字

-size:根据文件大小查找

-size [+|-] #unit
不加符号:表示在一个单位只内的
2M 是 1M 到 2M
2k 是 1k 到 2k
例如:-size +2M 大于2M
常用
-2M:小于1M的文件
在同一单位只能的

根据时间戳查找:

以天为单位(time):
    -atime [+|-] -atime 2 距离现时刻2天的文件; -atime +2 距离现时刻大于2天的文件;-atime -2 距离现时刻小于2天的文件;
    -mtime
    -ctime
以分钟为单位(min)
    -amin [+|-]#
    -mmin
    -cmin

根据权限查找:

-perm [+|-] MODE
    MODE:精确匹配
    +MODE:任何一类的任何一位权限匹配:常用于查找某类用户的某特定权限是否存在
    -MODE:每类用户指定要检查的权限都匹配

文件权限:644
-perm 600 不符合
-perm +222 符合
-perm -444 符合

练习
1.查找/var目录中属主为root且属组为mail的文件
2.查找/usr目录下不属于root、bin或hadoop的所有文件
3.查找/etc目录中最近一周内其内容修改过的,且不属于root或hadooop的文件
4.查找当前系统上没有属组或属组,且最近一个月内被访问过的文件
5.查找早/etc/目录下大于1M且类型为普通文件的所有文件
6.查找/etc/目录所有用户都没有写权限的文件
7.查找/etc/目录下至少一类没有写权限的文件
8.查找/etc/init.d目录下,所有用户都有执行权限其其他用户有写权限的文件

 1.find /var/ -user root -group mail
 2.find /usr/ -not -user root -not -user bin -not -user hadoop
 3.find /etc -mtime -7 -not -user root -not -user hadoop
 4.find / \(-nouser -o -nogroup\) -atime -30
 5.find /etc/ -type f -size +1M
 6.find /etc/ -not -perm +222
 7.find /etc/ -perm -222
 8.find /etc/init.d/  -perm -111 -perm -002
   find /etc/init.d/  -perm -113

处理动作:

-print:默认,打印在标准输出上
-ls:以长格式输出各文件信息
-exec COMMAND {} \; :对查找到的文件指定的命令
-ok COMMAND {} \; :交互式
find把查找到的所有文件一次性地传递给-exec执行
find |xargs COMMAND

猜你喜欢

转载自blog.csdn.net/weixin_36209467/article/details/82319724