如何使用 find 扫描所有设置了执行位的文件?

如何使用 find 扫描所有设置了执行位的文件?

我想编写一个权限修复脚本,使用 find 来修复文件的权限。

我主要需要的是一个 find 命令,它能够列出所有设置了执行位的文件,而不管该文件的其他权限(这就是诀窍)。

答案1

根据 GNU 的发现:

find /dir -type f -executable

对于其他版本,请参阅 周围的手册页-perm

答案2

不管你相信与否,这在寻找手册页。在 CentOS 和 Ubuntu 系统上我什至有这样的例子。

-烫发/模式

为文件设置任何权限位模式。这种形式接受符号模式。u',如果使用符号模式,则必须指定g' 或 'o'。有关一些说明性示例,请参阅示例部分。如果模式中没有设置权限位,则此测试匹配任何文件(这里的想法是与 -perm -000 的行为一致)。

所以

find  . -perm /u+x

将查找为所有者设置了执行权限的文件

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

会查找为所有者等设置了执行权限的文件。

答案3

不使用 find 命令,在 zsh 上我们可以使用以下命令执行类似的操作Glob Qualifiers:

ls /path/to/some/parent/folder/**/*(*)

上面的ls命令将返回 的所有子文件夹中的所有/path/to/some/parent/folder可执行文件。

相关内容