2014-09-22 57 views
0

我试图找到所有的文件或目录,可以执行任何用户,组或其他。到目前为止,我想出了这个如何查找任何人可执行的文件/目录?

find . -perm -u+x 

我不知道如何搜索组等为好。我知道,

find .-perm -ugo+x 

将搜索可以由所有3这些(本质上a + x)执行的文件/目录。

我已经搜索并不能弄清楚如何寻找任何的3个地方的建议

find . -perm -u+x, g+x, o+x 

,但我得到的错误

find: -perm: u+x,: illegal mode string 

什么想法?

回答

2

尝试:

find . -perm /u=x,g=x,o=x 
+0

或更短'查找。 -perm/111'(或者更老的语法'find。-perm + 111' – jm666 2014-09-22 20:13:51

+0

Woops,在我的答案中忘记了'/',+1。你应该添加错误的解释 – BroSlow 2014-09-22 20:15:35

+0

当我尝试/ 111或/ u = x,g = x,o = xi仍然会得到“非法模式字符串”,但是我尝试了+111并且工作正常,有人可以向我解释这一点,并且有相当于+111的类似于/ u = g = x,o = x? – 2014-09-22 20:17:52

1

的POSIX符合的语法将

find . \(-perm u=x -o -perm g=x -o -perm o=x \) 

这三个-perm初选检查,如果该文件是由用户,组,或其他可执行;他们加入了-o,因此整个\(...\)群组中只有一个必须为真。

+0

+1。不要认为括号是必需的(它们确实暗含在隐含的'-print'中),除非你是特定的对某个特定的行为或其他选择。 – BroSlow 2014-09-22 22:37:27

+0

哦,好点。我会离开他们,以防万一有人试图添加另一个过滤器到这个答案。 – chepner 2014-09-22 22:42:24

相关问题