2009-08-19 214 views
3

OS X是否有任何方法将一个文件夹的权限克隆到另一个文件夹。只是要清楚,我不想复制整个文件夹,只是权限,然后将它们设置在另一个文件夹。我认为这种类型的事情可以在Linux/UNIX使用setfacl/getfacl命令来实现,但我如何与OS X.为此将文件夹的权限克隆到另一个文件夹

感谢

+0

你想了解如何做到这一般或作为编程任务的一部分?如果这是一个普遍的问题,则属于SuperUser。 – Telemachus 2009-08-19 22:20:20

+0

Shell脚本是程序 - 它在StackOverflow上很好。 – 2009-08-19 22:21:54

+0

@Jonathan:问题太模糊了,很难说如果他想用shell脚本来做这件事,或者他只是想要一个shell命令。 – Telemachus 2009-08-19 22:24:08

回答

6

测试在Mac OS X v10.5.7,在bash:

chown $(stat -f%u:%g "$srcdir") "$dstdir" # Copy owner and group 
chmod $(stat -f%Mp%Lp "$srcdir") "$dstdir" # Copy the mode bits 
(ls -lde "$srcdir" | tail +2 | sed 's/^ [0-9]*: //'; echo) | chmod -E "$dstdir" # Copy the ACL 

注:这些操作(ESP更改所有权)很可能需要root权限;洒上sudo以获得最佳效果。另外,如果srcdir没有附加任何ACL条目(chmod -E可以处理空白行,但不是完全空的输入),那么最后一行的奇数echo命令可以防止出现错误。

1

不确定我想你用Google搜索和发现至少:

web page也似乎掩盖了一些重要的INF (例如fsaclctl)。

+0

'fsaclctl'用于在文件系统上启用或禁用acls,而不是控制特定文件夹的acl状态。在10.4中,我相信acl支持是可用的,但默认情况下是关闭的,所以这个命令派上用场。在10.5版本中,acls默认是开启的,所以它仍然派上用场。 – Telemachus 2009-08-19 22:29:40

+0

我一直在使用chmod,问题是我需要一个自动化的过程来将源目录的权限克隆到目标目录。 Chmod很容易手动使用,但对于自动化过程来说可能有点困难。 – indragie 2009-08-19 22:41:09

+0

@PCWiz:你可以很容易地将一系列'chmod'命令(你已经测试过的完美)放到Bash脚本中并根据需要运行它。 – Telemachus 2009-08-19 22:50:31

0

我最终做的是创建一个Objective C方法(我计划在Cocoa应用中使用它),它使用perl脚本找出文件的权限,然后使用chmod/chown来应用这些权限。

相关问题