在Linux中,我们可以使用以下命令以递归方式更改文件和文件夹的权限模式。
找到“/ Users / Test / Desktop / PATH”-exec * chmod 777 {} \;
我怎么能为mac做同样的事情,因为我得到了以下错误。
find:TEST_FILE:没有这样的文件或 目录
答案 0 :(得分:37)
问题是,*
正在被shell解释,并且正在扩展到恰好位于当前工作目录中的名为TEST_FILE
的文件,因此您告诉{{1}执行不存在的名为find
的命令。我不确定你要用TEST_FILE
完成什么,你应该删除它。
此外,您应该使用惯用语*
而不是-exec program '{}' \+
,以便-exec program '{}' \;
不为每个文件分叉新进程。使用find
,为每个文件分叉一个新进程,而对于;
,它只分叉一个进程并在单个命令行上传递所有文件,对于像{{1}这样的简单程序更有效率。
最后,+
可以使用chmod
标志自行进行递归更改,因此除非您需要搜索特定文件,否则请执行以下操作:
chmod
答案 1 :(得分:28)
您可以使用-R(递归)标记。
chmod -R 777 /Users/Test/Desktop/PATH
答案 2 :(得分:10)
使用CHMOD是:
对于递归文件:
chmod -R 777 foldername or pathname
非递归:
chmod 777 foldername or pathname
答案 3 :(得分:4)
我没有Mac OSx机器来测试它,但是在Linux上的bash我使用类似下面的内容来chmod only目录:
find . -type d -exec chmod 755 {} \+
但这也做同样的事情:
chmod 755 `find . -type d`
这样做:
chmod 755 $(find . -type d)
最后两个使用不同形式的子命令。第一种是使用反引号(旧的和折旧的),另一种是使用 $()子命令语法。
所以我认为在你的情况下,以下将做你想要的。
chmod 777 $(find "/Users/Test/Desktop/PATH")
答案 4 :(得分:0)
如果他们给出了路径目录错误!
在MAC中 然后转到文件夹获取信息,然后将打开存储空间和权限更改为特权 读到写