使用`find -perm`查找未设置权限的时间


70

我想在目录中找到不可读的文件(例如,带有gr的文件)。所以我尝试了这个:

find . -perm -g-r

它显示了我所有的文件??所以我尝试了这个:

find . -perm -g+r

它只显示了可读文件。似乎-perm -g-r与所有文件匹配。我正在使用CentOS 5.5。难道我做错了什么?看起来-perm -g-r没有任何用处。


1
我认为,-权限参数的前缀表示具有“至少”这些权限的匹配文件。因此,它匹配的文件不属于组可读,以及是组可读的文件,因为组可读文件有一个被认为是“大于”一组权限g-r
osullic

Answers:


101

尝试:

find . ! -perm -g+r


3
可行!我仍然对-perm -g-r不工作感到困惑,但是哦。
User1 2010年

这是查找不可执行文件的明显扩展。谢谢!
沃尔特·尼森,

如果我想将搜索范围限制为文件而不是目录,并且要搜索-maxdepth2,该怎么办?我的意思是,在主张其他事情时如何消除烫发?编辑:没关系。您可以使用!取消任何选项。乍一看似乎没有奏效,但确实如此。我这样做了find -maxdepth 2 ! -perm -g+r -type d,发现目录的深度为2,没有组读取权限。
Buttle Butkus 2012年

我认为该-perm选项g-rchmod g-r <file>
不受支持

25

如果要查找不可读文件,可以使用

find . ! -readable

6
这适用于Linux,但是在Mac(自2008年起)上找到的BSD不支持它。
Walter Nissen

好点子。可能有很多不支持-read的查找版本。
查理

-3

执行以下指令时,您能够看到所有文件,因为您是以root身份执行该指令的。

find . -perm -g-r

尝试以普通用户身份执行。


7
文件属性(权限,所有权,大小等)与用户无关。我相信您的回答是错误的。
tommy.carstensen 2014年

另外,OP询问如何查找设置的位,Tim Cooper的答案是这样做的,而您却错过了。
Mike Diehn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.