我正在尝试CHMOD777所有的.doc文件在我的Mac上。有没有办法通过航站楼,我可以这样做?
__
感谢您的回复。我以为这是更改Word文档文件权限的方法。我有2个用户在Mac上共享一个文件夹。但是当一个人创建一个doc文件时,另一个人只有读权限。我希望他们两个都有这个,或者每个人。这不重要。我还想回顾过去的所有文档,其中一些用户A具有读写权限,一些用户B具有读写权限,这两个用户都可以读写。有没有其他方法可以做到这一点?据我所知,这是一个Mac权限问题,在Word中没有。我认为终端中的CHMOD 777是实现这一点的方法。
发布于 2014-02-06 06:27:06
使用find和xargs或find的-exec选项。
/home/erjablow> find . -name "*.doc" | xargs -n 3 chmod a+rwx
# Find the names of all "doc" files beneath the current directory.
# Gather them up 3 at a time, and execute
# chmod a+rwx file1 file2 file3
# on each set.现在,find是一个令人讨厌的工具,很难使用。它可以做一些荒唐的事情,一个拼写错误可以毁掉一个人的一天。
为什么要使所有文档文件都不受保护?
发布于 2014-02-06 09:18:12
我同意之前的回应,即find令人讨厌。而且,将其通过管道传输到另一个实用程序可能会很棘手。如果必须这样做,我会指定文件类型并使用find的exec函数,而不是xargs。
find / -x -type f -iname *.doc \-exec chmod 777 {} \;
-x将仅搜索本地Macintosh HD,并排除所有已挂载的卷
您可能需要考虑其他条件来优化搜索,如不同的起点或排除特定的文件夹和/或文件扩展名
find / -x find / -not \( -path "*/some_sub-folder*" -or -path "*/some_other_sub-folder*" \) -type f \( -iname *.doc -or -iname *.docx \) \-exec chmod 777 {} \;
或者,如果您设置为使用find|xargs,那么您可能应该尝试使用-print而不是-print0,这样每个文件都作为单独的一行返回。这也可以解决这个问题。
无论哪种方式,请在执行此操作之前进行备份,并仔细测试。祝你好运HTH
发布于 2014-02-06 15:45:50
别。
如果你真的想这样做:
find / -x -name `*.doc` -type f -print0 | xargs -0 chmod 777我还没有测试过这个。我不能保证Mac版本的find和xargs命令支持所有这些选项;我习惯了Linux系统上常见的GNU findutils版本。
find命令从根目录开始,将自身(-x)限制为当前文件系统,选择名称以.doc结尾的文件,并以空字符分隔打印这些文件。如果您的文件或目录的名称中包含空格,则后者是必需的。-x选项等同于find的某些其他版本中的-xdev选项。
如果要匹配其名称为.Doc、.DOC等的文件,请使用-iname '*.doc'而不是-name '*.doc'。
xargs命令接受这个以null分隔的文件列表,并对每个文件执行chmod 777,将该列表分解为不会溢出chmod命令行的块。
让我再次强调:
echo xargs替换xargs;它将打印它将执行的命令(预计会有很多具有非常长的行的输出)。或者将xargs替换为xargs -n 1 echo,为每个文件生成一行。777为系统上的每个用户提供读、写和执行权限。.doc文件不是可执行文件;在类Unix系统中,赋予它们execute权限毫无意义。644可能是一个更合理的值(所有者为读/写,其他所有人为只读)。https://stackoverflow.com/questions/21589828
复制相似问题