我如何递归执行chmod
或chown
隐藏文件?
sudo chmod -R 775 *
不适用于隐藏文件。
同样的事情也发生在sudo chown -R user:group
。
答案1
如果您也可以对当前目录进行 chmod 修改,请执行此操作并让其-R
完成繁重的工作。-R
不会忽略隐藏文件。
sudo chmod -R 775 .
答案2
*
默认情况下不包括隐藏文件,但是如果你在 bash 中,你可以这样做:
shopt -s dotglob
在 bash 中阅读更多内容builtin
手动的:
如果设置,Bash 会在文件名扩展的结果中包含以“.”开头的文件名。
这也会*
包含隐藏文件。
chmod -R 775 *
使用以下命令禁用它:
shopt -u dotglob
答案3
递归地执行当前目录中的所有文件,包括隐藏文件:
chmod 755 -R ./* ./.[!.]*
当前目录中的所有文件,不是递归地,包括隐藏文件:
chmod 755 ./* ./.[!.]*
这不会更改以两个点开头的异常文件名,例如,"./..thisonescapesunharmed.txt"
另外,请注意不要删除“x”位,否则所有目录将无法访问(需要 x 位才能 cd 进入目录)。
记住这个警告:永远不要使用 bare *
but ./*
。
为了避免在目录上设置权限时出现问题,请改用find
。
find . -type f -exec chmod `VALUE` {} \;
答案4
另一个选择是使用find
我喜欢它,因为您可以对它进行非常细粒度的控制。
find <path to start from> -exec chown <options> {} \+
find -path '<path to include>' -exec chown <options> {} \+
唯一的缺点是find
不同版本的语法不同。