我试图:
因此,最终,获取/shared中所有子目录的ACL。
我试图使用的步骤是:
ls -d -- /shared/*/*/*/ > directory_list
getfacl < directory_list > acl_list
我是否可以使用不同的命令(1)递归地列出子目录,因为-dr (递归地列出目录)似乎不起作用。另外,我也不知道有多少级别的子目录。
当我运行第二个命令时,似乎有一些语法错误阻止了它的运行,但是我已经检查了linux手册页中的语法,它应该是正确的。
有人能指出我的正确方向吗?
谢谢
发布于 2015-03-12 00:59:39
find
执行递归列表:
找到/shared -type d -print > directory_listgetfacl
期望文件名是命令行参数,它不读取标准输入。使用xargs
执行此转换:
xargs -d‘n’getfacl < directory_list > acl_list-d
选项指定分隔符,覆盖空白的默认用法。然而,我相信这是一个GNU扩展,它可能不是在所有版本的xargs
。如果您不能使用它,则必须编写一个循环:
while read -r filename; do
getfacl "$filename"
done < directory_list > acl_list
发布于 2015-03-12 01:34:27
我知道您实际上是这样要求的,但从技术上讲,您需要中间的directory_list吗?
find /shared -type d -print -exec getfacl "{}" \+ > acl_list
发布于 2015-03-12 00:58:18
find
命令应该为您提供所需的信息:
find /shared -type d
-type d
只将输出限制在目录上。
https://stackoverflow.com/questions/29000128
复制相似问题