在 Mac OS X Snow Leopard 中,一个文件的权限如何与另一个文件的权限匹配?

在 Mac OS X Snow Leopard 中,一个文件的权限如何与另一个文件的权限匹配?

我需要使一个文件的权限与 OS X 10.6 中另一个文件的权限完全匹配。

我没有看到getfaclsetfacl像其他一些 Linux 帖子中所建议的那样。而且, Snow Leopard 中似乎没有这个chown选项。chmod--reference

Mac 上的等效项是什么?

答案1

这个有效:

chmod `stat -f %A srcFile` dstFile

答案2

好的,对于直接 ACL 副本,我看不到任何命令。但是,您可以将其放入脚本或函数中:

ls -le source | sed -En '/^ [[:digit:]]+: / { s/^ [[:digit:]]+: //; p; }' | chmod -E dest

例如。

function copyacl()
{
  ls -le "$1" \
    | sed -En '/^ [[:digit:]]+: / { s/^ [[:digit:]]+: //; p; }' \
    | chmod -E "$2"
}

$ copyacl sourcefile destfile

我也有这样的感觉sed脚本可以改进,但它似乎可以完成这项工作。

答案3

用于ls -le查看与文件关联的任何 acl。

用于chmod更改或删除 acl。文章最后有很多例子chmod 手册页来指导你。

Mac OS 有一组单独的文件访问标志,显然是从 BSD 继承的。你可以看到那些ls -lO(那是破折号哦)并修改它们chflags

答案4

不确定您是否询问标准 UNIX 权限或 ACL。许多版本都chmod可以--reference选择获取另一个文件的权限:

chmod --reference=~/backup/file ~/newfile

但您需要检查chmodMac 上的选项:

chmod --help

相关内容