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