Linux命令基础find

查找文件的方法

locate

locate 模糊匹配,非实时查找,是根据全系统文件数据库进行的,执行updatedb命令,手动生成文件数据库
例如 locate ifconfig
Linux命令基础find

find

find 实时,精确查找,查找速度慢

find 查找的路径 查找的标准 查找后的处理的动作

查找的路径,默认是当前路径
查找的标准,默认是指定路劲下的所有文件
查找后的处理的动作,默认显示
Linux命令基础find

查找的标准

-name "filename" 根据文件名称,单 引号,双引号,不加引号
-iname filename 文件名称不区分大小写
-user username 根据属主
Linux命令基础find
-group groupuser
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
-uid 505
-gid 505
用户删除后,文件原来属主,属组属于该用户的,此时显示id号
Linux命令基础find


-type
d
f
s
c
b
p
l


-size
K(KB)
G(GB)
M(MB)


-mtime
5
+5
-5


-atime
-ctime
-mmin
-amin
-cmin


-perm
mode 按权限查找,精确匹配
/mode 权限位有任何一位匹配
-mode 文件权限能完全包此mode时显示
(1)、644:rw-r--r--
(2)、755:rwxr-xr-x
(3)、750:rwxr-x---
(2)包含(1),(3)mode

如找到当前文件夹属组有写权限的文件
find ./ -mode -020(只要属组有写权限的文件都能包含 ----r----即-020)


查找后的处理动作

-print 默认
-ls 类似ls -l
Linux命令基础find

-ok
-exce
给当前文件夹里的所有以.sh结尾的文件添加可执行权限
find ./ -name "*.sh" -exec chmod +x {} \;
可以把 -exec换为 -ok ,区别是-ok需要手动一个一个的确认

Linux命令基础find
给当前文件夹里的所有以.sh结尾的文件添加后缀名-bak
Linux命令基础find

使用-exec 或 -ok ,命令结尾的 \ ; 不能省略

猜你喜欢

转载自blog.51cto.com/11193863/2321585