查找设置了 ACL 的文件

查找设置了 ACL 的文件

+我如何才能找到所有设置了一些扩展 ACL 的文件,即那些在所示的权限标志末尾带有一点的文件ls -l

我找不到 的对应标志find。我最原始的方法是将和find结合起来。但我认为这不太好。ls -lgrep

有人有想法吗?

答案1

getfacl可以递归转储 ACL,并且它有一个--skip-base忽略没有 ACL 的文件的选项。

getfacl -R -s -p /directory | sed -n 's/^# file: //p'

答案2

Perl 版本:

getfacl -R -p -s  / | perl -wn -e ' if (/^# file/) { s|^# file: /||; print; }'

答案3

-R:递归列出所有文件和目录的ACL。

-s:跳过仅具有基本 ACL 条目(所有者、组、其他)的文件。

getfacl -Rs .
getfacl --recursive --skip-base .

答案4

我发现谷歌搜索的结果恰恰相反,它用于查找未设置 ACL 的文件。这就是我最终得到的结果(以防其他谷歌用户找到它)

ls --color=auto -lR | grep -v "\+ " | grep -v "^[.,a-z,1-9]" | grep -v "^$"

显然ls -R比 find 更快(我有数以亿计的文件,每个 find 命令都要花 2 个小时)。

相关内容