本文于 30 天前发布,最后更新于 30 天前
一、准备工作
find命令的-perm参数选项有三种写法。下面创建一些文件,作为准备工作。
注意:每个文件的文件名与其权限呈对应状态,便于我们观察现象。
二、三种写法
(1)不带任何符号,表示精确匹配指定的权限
[root@shine find-perm]# find . -perm 333
./333
[root@shine find-perm]# find . -perm 666
没有匹配到文件
(2)权限前加一个“-”
[root@shine find-perm]# find . -perm -444
./777
./644
./444
./755
./555
可以看到匹配到5个文件,需要注意的是,这里并不是比大小,用755为例:
- User:7=4+2+1。r+w+x
- Group:5=4+1。w+x
- Other:5=4+1。w+x
-perm -444表示3个权限位都至少要有4。也就是三个权限都必须包括写权限。
(3)权限前加一个“/”
[root@shine find-perm]# find . -perm /444
./777
./750
./400
./644
./444
./500
./755
./555
./700
./600
可以看到相比于“-”匹配到了更多的文件。以600为例:
- User:6=4+2。r+w
- Group:0。
- Other:0。
只有User权限下符合要求,仍然匹配成功,则说明“/”表示或者的意思,所以-perm /444就表示3个权限位中只要有一个符合匹配条件,剩下两个权限位就忽略不判断了。
三、总结
find . -perm -444
:3个权限位都必须至少匹配指定的权限find . -perm /444
:3个权限位中的任意一个匹配指定的权限find . -perm 444
:精确匹配指定的权限