大多数 unix 派生类可以通过以下方式将 ACL 从一个文件复制到另一个文件:
getfacl filename1 | setfacl -f - filename2
Run Code Online (Sandbox Code Playgroud)
不幸的是,Mac OS X 没有 getfacl 和 setfacl 命令,因为它们已将 ACL 处理卷入 chmod。chmod -E 接受标准输入上的 ACL 列表,但我还没有找到可以在标准输出上以合适格式吐出 ACL 的命令。我想出的最好的是:
ls -led filename1 | tail +2 | sed 's/^ *[0-9][0-9]*: *//' | chmod -E filename2
Run Code Online (Sandbox Code Playgroud)
有没有更强大的解决方案?
额外的问题:有没有一种很好的方法可以在 Python 中做到这一点,而不使用任何未随 10.6 一起提供的模块?