pyt*_*tho 28 permissions macos shell
在Linux中,我们可以使用以下命令以递归方式更改文件和文件夹的权限模式.
找到"/ Users/Test/Desktop/PATH"-exec*chmod 777 {} \;
我怎么能为mac做同样的事情,我会得到以下错误的重复.
find:TEST_FILE:没有这样的文件或目录
Ada*_*eld 43
问题是*
shell正在解释它并且正在扩展到一个名为TEST_FILE
恰好位于当前工作目录中的文件,所以你要告诉你find
执行命名的命令TEST_FILE
,该命令不存在.我不确定你要用它做什么*
,你应该删除它.
此外,你应该使用的成语-exec program '{}' \+
,而不是-exec program '{}' \;
让find
没有一个新的进程为每个文件.使用时;
,会为每个文件分叉一个新进程,而使用+
它只会分叉一个进程并在单个命令行上传递所有文件,这对于简单程序chmod
来说效率要高得多.
最后,chmod
可以使用-R
标志自行进行递归更改,因此除非您需要搜索特定文件,否则只需执行以下操作:
chmod -R 777 /Users/Test/Desktop/PATH
Run Code Online (Sandbox Code Playgroud)
And*_*Vit 33
您可以使用-R(递归)标志.
chmod -R 777 /Users/Test/Desktop/PATH
Run Code Online (Sandbox Code Playgroud)
通过使用CHMOD是:
对于递归文件:
chmod -R 777 foldername or pathname
Run Code Online (Sandbox Code Playgroud)
对于非递归:
chmod 777 foldername or pathname
Run Code Online (Sandbox Code Playgroud)
我没有Mac OSx机器可以对此进行测试,但是在Linux上的bash中,我使用类似以下内容的命令仅对chmod目录:
find . -type d -exec chmod 755 {} \+
Run Code Online (Sandbox Code Playgroud)
但这也做同样的事情:
chmod 755 `find . -type d`
Run Code Online (Sandbox Code Playgroud)
这样:
chmod 755 $(find . -type d)
Run Code Online (Sandbox Code Playgroud)
后两个使用不同形式的子命令。第一种是使用反引号(旧的和折旧的),另一种是使用$()子命令语法。
因此,我认为在您的情况下,以下将满足您的要求。
chmod 777 $(find "/Users/Test/Desktop/PATH")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
100504 次 |
最近记录: |